簡體   English   中英

2月和strtotime

[英]February and strtotime

好的?

我正在嘗試在此處計算日期,但是我沒有得到..

發生了以下情況:

$AtualMenos3 = date("m-d-Y", strtotime("2013-03-31 -3 month"));
$AtualMenos2 = date("m-d-Y", strtotime("2013-03-31 -2 month"));
$AtualMenos1 = date("m-d-Y", strtotime("2013-03-31 -1 month"));
$AtualMes = date("m-d-Y", strtotime("2013-03-31"));

正確的應該是:

03-31-2013
02-28-2013
01-31-2013
12-31-2012

但是,此php計算日期錯誤,因為當月份為2月(只有28天)時,計算會出錯..

實際輸出:

03-31-2013
03-03-2013
01-31-2013
12-31-2012

有誰知道我如何解決這個問題? 因為這很復雜..我沒主意了...我什么都想不起來:

    $datetime = new DateTime('2013-03-31');
    $datetime->modify('-1 month');
    echo $datetime->format('Y-m-t') . "<br>";
    $datetime->modify('-1 month');
    echo $datetime->format('Y-m-t') . "<br>";
    $datetime->modify('-1 month');
    echo $datetime->format('Y-m-t') . "<br>";

實際觀看

查找該月最后一天的解決方法是:

 $lastDay = date("m-d-Y",(strtotime('next month',strtotime(date("m-01-Y"))) - 1)); 

希望它會有所幫助。

如果要堅持使用strtotime() ,則可以通過從下個月減去一天來輕松地計算一個月的最后一天。

echo date("m-d-Y", strtotime("Apr 2013 -1 day")); // yields 03-31-2013
echo date("m-d-Y", strtotime("Mar 2013 -1 day")); // yields 02-28-2013
echo date("m-d-Y", strtotime("Feb 2013 -1 day")); // yields 01-31-2013

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM