PHP 选择自定义周范围的日期



PHP 7.1.7

我正在处理的一个工作函数有一个自定义的"周"(其中这个函数的"周"是星期六到星期五(。

对于一周中的任何给定日期,我如何设置两个变量来包含自定义周的开始(星期六(和自定义周的结束(星期五(。

因此,如果我的日期为 8-11-17,我需要提出一个包含 8-05-17 的开始日期变量和一个保持 8-11-17 的结束日期变量。

谢谢

不确定我是否正确理解了这个问题,但这是您要找的吗?
它使用 strtotime(( 从输入中查找前一个星期六。然后从那个星期六开始的下周五。

$Input = "08/12/2017";
if(date("l", strtotime($Input)) == "Saturday"){
$Saturday = strtotime($Input);
}else{
$Saturday = strtotime($Input . " previous saturday");
}
$Friday =  strtotime(date("m/d/Y", $Saturday) . " next friday");
echo date("m/d/Y", $Saturday) . " to " . date("m/d/Y", $Friday);

https://3v4l.org/l4g8D

编辑;我刚刚注意到如果输入是星期六,我的代码选择了错误的日期。纠正。

您可以使用date('w'(来确定给定日期的星期几。 如果找到的数字小于 6,请将该数字 + 1 向后移动。那是你的开始日期。结束日期将在 7 天后:

<?php
$date = new DateTime('08-11-2017');
$daynumber = $date->format('w');
if($daynumber < 6) {
$tomove = $daynumber + 1;
$date->modify('-' . $tomove.'day');
}
$startdate = $date;
$enddate = clone $date;
$enddate->modify('+7day');
echo $startdate->format('d-m-y');
echo $enddate->format('d-m-y');
?>

编辑

在修改中忘记了"天"字

最新更新