如何使用PHP計算上乙個月的今天

2022-10-06 13:18:14 字數 1252 閱讀 9119

一日,遇到乙個問題,求上乙個月的今天。 最開始我們使用 strtotime(」-1 month」) 函式求值,發現有乙個問題,月長度不一樣的月份的計算結果有誤。 比如:2011-03-31,得到的結果是2011-03-03。我們先不追究什麼問題,先看如何解決問題。 此時,想起php中有乙個mktime函式,於是自己寫了如下**:

複製** **如下:

echo date("y-m-d h:i:s", mktime(date("g", $time), date("i", $time),

date("s", $time), date("n", $time) - 1, date("j", $time), date("y", $time)));

當執行時,發現結果和strtotime的結果是一樣的。

還是基於這個函式,既然無法直接操作月,那麼我們從天入手,得到上乙個月,然後再使用date拼接資料。如下**:

複製** **如下:

$time = strtotime("2011-03-31");

/** * 計算上乙個月的今天

* @param type $time

* @return type

*/function last_month_today($time)

echo last_month_today($time);

但是此時又有了另乙個問題,不存在2011-02-31這樣的日期,怎麼辦?現在的需求是對於這樣的日期顯示當月最後一天。 如下**:

複製** **如下:

$time = strtotime("2011-03-31");

/** * 計算上乙個月的今天,如果上個月沒有今天,則返回上乙個月的最後一天

* @param type $time

* @return type

*/function last_month_today($time)

return date(date("y-m", $last_month_time) . "-d", $time);

}echo last_month_today($time);

這裡需要注意一點: date(」y-m」, $last_month_time) . 「-d」這段**。在寫**的過程中如果寫成了 「y-」 . date(」m」, $last_month_time) . 「-d」 則在跨年的時間上有問題。 這點還是在寫這篇文章時發現的。

除了這種方法,還可以先算出年月日再拼接字串,這裡就是純粹的字串操作了。

本文位址: /wangluo/php/95366.html

PHP計算上乙個月的今天是星期幾

上個月的今天是星期幾?不好說.把它拆分成兩個問題來看 上個月的今天是幾號?很簡單啊 恩 好像是對的.不過.這個函式有個問題,如果月份的天數不同,結果就是錯的.加入今天是2012 03 31,計算上個月的今天,那麼結果就是2012 03 03 php有個函式 mktime,它可以取得日期的時間戳 in...

php獲取當前的上乙個月和下乙個月

由於專案當中有用到這樣的乙個方法,故在這邊做記錄 function getmonth sign 1 else 另外在做時間的需要注意 如果以日期作為結束時,轉換成時間戳會導致時間有差異的 比如我使用日期是20160821,不計算後面的時間,但系統實際會計算乙個時間,即 20160821 00 00 ...

strtotime 獲取上乙個月

1.案例 strtotime結合 1 month,1 month,next month 有時候會出現錯誤 date y m d strtotime 1 month 輸出 2018 07 01 1 month 程式設定 30天,相當於7月31日 30天得7月30號 var dump date y m ...