我有两个约会
$start_date = '2015-09-21';
$end_Date = '2016-09-21';
我想得到的是这样
Week = Monday Friday
36 = 2015-09-21 2015-09-25
37 = 2015-09-28 2015-10-02
38 = 2015-10-05 2015-10-09
.
.
38 = 2016-09-19 2016-09-24
日期差异可以是一年或更长。我需要得到的是确切的每个星期一和星期五的日期之间的这个时间间隔。
我用了这个方法
$weeks = array();
while ($start_date < $end_Date )
{
$weeks[] = date('W', $start_date );
$start_date += strtotime('+1 week', 0);
}
function getStartAndEndDate($week, $year)
{
$time = strtotime("1 January $year", time());
$day = date('w', $time);
$time += ((7*$week)+1-$day)*24*3600;
$return[0] = date('Y-m-d', $time);
$time += 6*24*3600;
$return[1] = date('Y-m-d', $time);
return $return;
}
当我调用这个函数时,我需要输入周数和年份来获得确切的日期。但是我不能用特定的一周来获得年份。我可以设法从开始日期或结束日期得到一周。
$current_year = date("Y", strtotime($fromdate));
有没有人建议我用星期数来得到确切的年份
3条答案
按热度按时间e4yzc0pl1#
首先,你需要将时间转换为对象,然后计算差值。现在计算给定日期之间的周数。现在它的时间循环从开始日期开始,我使用
DateInterval('P4D')
将日期提前4天,然后回显两个日期,然后再次使用DateInterval('P3D')
完成一周,重复此操作。输出:
nxowjjhe2#
如果开始日期是1月1日,而结束日期是前一年的第52周,那么“Yogesh Singasane”提供的答案就不起作用了。下面是修改后的代码,似乎涵盖了相同的角落情况:
P.S. Google把我带到这里,我想发帖帮助像我一样的人。
laik7k3q3#