目标:如果当前星期几是星期一以外的任何一天,则显示当前星期一的日期。如果当周的当天是星期一,只需显示今天的日期。
**这是我写的,我认为它有效,但可能不是确定日期最干净的方法。话虽如此,有没有人看到代码错误或不起作用的原因? **
<?php
date_default_timezone_set("America/New_York");
$day = date("w");
if( $day == 1 ) {$day -= 0;}
if( $day == 2 ) {$day -= 1;}
if( $day == 3 ) {$day -= 2;}
if( $day == 4 ) {$day -= 3;}
if( $day == 5 ) {$day -= 4;}
if( $day == 6 ) {$day -= 5;}
if( $day == 0 ) {$day -= 6;}
$calc = mktime(0,0,0,date("m"),date("d")-$day,date("Y"));
echo date("m/d/Y",$calc)."<br>";
echo "start date of work week is: ".date("m/d/Y", $calc);
?>
答案 0 :(得分:15)
不会这样做吗?
echo date("d m Y",strtotime('monday this week'));
答案 1 :(得分:0)
你可以试试这个:
date_default_timezone_set("Asia/Kolkata");
$day = date("w")."<br>";
echo $day;
//if( $day == 1 ) {$day = 0;}
if( $day == 2 ) {$day -= 1;}
if( $day == 3 ) {$day -= 1;}
if( $day == 4 ) {$day -= 1;}
if( $day == 5 ) {$day -= 1;}
if( $day == 6 ) {$day -= 1;}
if( $day == 0 ) {$day -= 6;}
$calc = mktime(0,0,0,date("m"),date("d")-$day,date("Y"));
if($day == 1 ){
echo date("m/d/Y")."<br>";
echo "start date of work week is: ".date("m/d/Y");
}
else{
echo date("m/d/Y",$calc)."<br>";
echo "start date of work week is: ".date("m/d/Y", $calc);
}
答案 2 :(得分:0)
$time = strtotime('monday this week');
答案 3 :(得分:0)
如果您的一周从星期一开始,以下情况有效。
$monday = strtotime('this sunday', strtotime($startingDate)) - (86400 * 6);
如果你按照@mithunsatheesh建议的方式做到这一点,如果你的一周从星期日开始那么完美。