Calculate date for Monday of current week

旧巷老猫 提交于 2021-02-16 19:41:46

问题


Goal: If current day of week is any day other than Monday, display the date of the Monday of the current week. If the current day of the week is Monday, simply display today's date.

** This is what I wrote and I think it works but is probably not the cleanest way to determine the date. Having said that, does anyone see any reason why the code would be wrong or not work? **

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

回答1:


wont this work?

echo date("d m Y",strtotime('monday this week'));



回答2:


You Can try This :


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

                            }



回答3:


$time = strtotime('monday this week');



回答4:


The following works if your week starts on Monday.

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

While if you do it the way @mithunsatheesh suggested works perfectly if your week starts on Sunday.



来源:https://stackoverflow.com/questions/17668296/calculate-date-for-monday-of-current-week

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!