3

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

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

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

4 回答 4

15

这行不通吗?

echo date("d m Y",strtotime('monday this week'));
于 2013-07-16T04:58:49.560 回答
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); }
于 2014-02-05T07:06:13.647 回答
0
$time = strtotime('monday this week');
于 2015-08-10T12:40:45.577 回答
0

如果您的一周从星期一开始,则以下方法有效。

$monday = strtotime('this sunday', strtotime($startingDate)) - (86400 * 6);

如果您按照@mithunsatheesh 建议的方式进行操作,那么如果您的一周从星期日开始,则效果很好。

于 2016-11-03T07:23:14.037 回答