计算当周星期一的日期

时间:2013-07-16 04:53:22

标签: php date mktime

目标:如果当前星期几是星期一以外的任何一天,则显示当前星期一的日期。如果当周的当天是星期一,只需显示今天的日期。

**这是我写的,我认为它有效,但可能不是确定日期最干净的方法。话虽如此,有没有人看到代码错误或不起作用的原因? **

<?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);
?>

4 个答案:

答案 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建议的方式做到这一点,如果你的一周从星期日开始那么完美。