1. 程式人生 > >php獲取自然周、自然月的處理

php獲取自然周、自然月的處理

取得當前時間的上一週時間用date('Y-m-d', strtotime('-1 week'))沒有問題,因為每週時間固定為7天。

如果當前日期為2016-5-31, 用date('Y-m-d', strtotime('-1 month'))會產生錯誤。因為這裡把 -1 month按照-30 days來算
date('Y-m-d', strtotime('2016-05-31 -1 month')) = 2016-05-01
date('Y-m-d', strtotime('2016-01-31 +1 month')) = 2016-03-02
如果需要取當前月的前後月份的話,需要小心,正確做法可以改為
date('m', strtotime(date('Y-m-1').' -1 month'))

date('m', strtotime(date('Y-m-1').' +1 month'))

echo date("Y-m-d",strtotime('-1 week last monday'))." 00:00:00";
echo date("Y-m-d",strtotime('last sunday'))." 23:59:59";

echo '<br>上週起始時間:<br>';
echo date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m"),date("d")-date("w")+1-7,date("Y"))),"\n";
echo date
("Y-m-d H:i:s",mktime(23,59,59,date("m"),date("d")-date("w")+7-7,date("Y"))),"\n";