gpt4 book ai didi

php - 如何把握一周中的动态星期一

转载 作者:可可西里 更新时间:2023-10-31 23:50:47 24 4
gpt4 key购买 nike

$start_date = '2015-09-21';
$end_Date = '2016-09-21';



function getStartAndEndDate($start_date, $end_Date ){
$date1 = new DateTime($start_date);
$date2 = new DateTime($end_Date);
$interval = $date1->diff($date2);


$weeks = floor(($interval->days) / 7);
$date_differences = array();
for($i = 1; $i <= $weeks; $i++){
$date1->add(new DateInterval('P4D'));
$s_time = strtotime($start_date);
$week_number = date('W', $s_time);
$date_differences[] = $start_date." - ".$date1->format('Y-m-d')."<br>";
$date1->add(new DateInterval('P3D'));
$start_date = $date1->format('Y-m-d');
}

return $date_differences;
}

函数的输出是:

    [0] => 2015-09-1 @@ 2015-09-05
[1] => 2015-09-08 @@ 2015-09-12
[2] => 2015-09-15 @@ 2015-09-19
[3] => 2015-09-22 @@ 2015-09-26
[4] => 2015-09-29 @@ 2015-10-03
[5] => 2015-10-06 @@ 2015-10-10
[6] => 2015-10-13 @@ 2015-10-17
[7] => 2015-10-20 @@ 2015-10-24
[8] => 2015-10-27 @@ 2015-10-31
[9] => 2015-11-03 @@ 2015-11-07

在这个函数中,当我给出开始日期和结束日期时,它会返回所有星期的开始日期和结束日期,但是当我给他正好是星期一的开始日期时,问题就完美了。当我给它一个不是星期一而是其他几天的日期时,它只是添加四天并使一周像(星期二到星期六)。我真正想要的是,如果有人输入不是星期一的日期,它应该从星期一开始它的一周。例如如果

$start_date = '2015-09-21';
$end_Date = '2016-09-21';

它返回这样的输出:

[0] => 2015-08-31 @@ 2015-09-04
[1] => 2015-09-07 @@ 2015-09-11
[2] => 2015-09-14 @@ 2015-09-18
[3] => 2015-09-21 @@ 2015-09-25

最佳答案

识别日期是哪一天并使用 DateTime 计算星期一:

$s = new DateTime('2016-09-23');
$s->modify('-' . $s->format('N')+1 . 'days');
//2016-09-19
echo $s->format('Y-m-d');

关于php - 如何把握一周中的动态星期一,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39654043/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com