PHP strtotime 對於 last、next 的注意事項

PHP 使用 strtotime() 想要轉換成上週二、上週四等等的 timestamp,使用上會有要注意的地方。

PHP strtotime 對於 last、next 的注意事項

下述直接用範例來說明

  1. 先看今天星期幾:5/2 是星期三
    • php > echo date('Y-m-d H:i:s', strtotime("today")), "\n";
    • 2018-05-02 00:00:00
  2. 使用 last Tuesday,預期上週二應該是 4/24 (結果出現 5/1)
    • php > echo date('Y-m-d H:i:s', strtotime("last Tuesday")), "\n";
    • 2018-05-01 00:00:00
  3. 使用 next Tuesday
    • php > echo date('Y-m-d H:i:s', strtotime("Tuesday")), "\n";
    • 2018-05-08 00:00:00
    • php > echo date('Y-m-d H:i:s', strtotime("next Tuesday")), "\n";
    • 2018-05-08 00:00:00
  4. 使用 -1 / -2 week 的方式來做
    • php > echo date('Y-m-d H:i:s', strtotime("-1 Tuesday")), "\n";
    • 2018-05-01 00:00:00
    • php > echo date('Y-m-d H:i:s', strtotime("-2 Tuesday")), "\n";
    • 2018-04-24 00:00:00
  5. 最後使用 this week / last week 來指定「時間起始點」,就是我們要的答案
    • php > echo date('Y-m-d H:i:s', strtotime("last Tuesday this week")), "\n";
    • 2018-04-24 00:00:00
    • php > echo date('Y-m-d H:i:s', strtotime("Tuesday last week")), "\n";
    • 2018-04-24 00:00:00

相關網頁

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料