PHP 7.1.7
我正在处理的工作职能有一个定制的"周" (其中"周"此功能为周六至周五)。
对于一周中的任何一天,我如何设置两个变量来包含自定义周(星期六)的开始和自定义周(星期五)的结束。
所以,如果我有一个8-11-17的日期,我需要拿出一个开始日期变量,持有8-05-17,结束日期变量持有8-11-17。
由于
答案 0 :(得分:2)
您可以使用日期(' 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');
?>
修改
忘了这个词&#34; day&#34;在修改
答案 1 :(得分:2)
不确定我是否理解这个问题是正确的,但这是你在寻找什么? 它使用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);
EDIT;我刚注意到如果输入是星期六我的代码选择了错误的日期。校正。