strtotime的乙個使用問題

2021-09-13 09:55:32 字數 1490 閱讀 6645

我在開發過程中遇到這麼這個問題,因為趕進度,沒有記下來處理方案,在鳥哥的部落格看到原理分析,很到位!平時開發中總是急著處理問題,沒有深入分析和記錄問題。
今天是2018-07-31 執行**:date("y-m-d",strtotime("-1 month"))

輸出是2018-06-01?

先做-1 month, 那麼當前是07-31, 減去一以後就是06-31.

再做日期規範化, 因為6月沒有31號, 所以就好像2點60等於3點一樣, 6月31就等於了7月1

var_dump(date("y-m-d", strtotime("2017-06-31")));

//輸出2017-07-01

只要涉及到大小月的最後一天, 都可能會有這個問題

var_dump(date("y-m-d", strtotime("-1 month", strtotime("2017-03-31"))));

//輸出2017-03-03

var_dump(date("y-m-d", strtotime("+1 month", strtotime("2017-08-31"))));

//輸出2017-10-01

var_dump(date("y-m-d", strtotime("next month", strtotime("2017-01-31"))));

//輸出2017-03-03

var_dump(date("y-m-d", strtotime("last month", strtotime("2017-03-31"))));

//輸出2017-03-03

php5.3之後的版本處理方式

」first day of」 和 「last day of」, 也就是你可以限定好不要讓date自動」規範化」

var_dump(date("y-m-d", strtotime("last day of -1 month", strtotime("2017-03-31"))));

//輸出2017-02-28

var_dump(date("y-m-d", strtotime("first day of +1 month", strtotime("2017-08-31"))));

輸出2017-09-01

var_dump(date("y-m-d", strtotime("first day of next month", strtotime("2017-01-31"))));

輸出2017-02-01

var_dump(date("y-m-d", strtotime("last day of last month", strtotime("2017-03-31"))));

輸出2017-02-28

使用mktime之類的, 把所有的日子忽略掉, 比如都限定為每月1號就可以了, 只不過就不如直接用first day來的更加優雅

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 ...

CakePHP View Cache的乙個問題

最近一直在使用cakephp,感覺挺不錯。不過這幾天在使用view cache的時候卻發現乙個問題 url帶查詢引數時總是不命中快取。檢視 後發現問題所在,原來在view中使用cachehelper類來處理快取,每次儲存快取時採用的檔案路徑是 cache cache php return cache...

問乙個簡單的問題

問乙個簡單的問題 delphi windows sdk api 初學delphi 需要時間不明確的情況下 迴圈體次數不定 怎麼用乙個動畫來讓使用者知道程式還在執行 具體用什麼控制項,如何寫呢 謝謝 sf 你可以在迴圈開始之前將游標設定成漏斗狀,然後在結束時恢復原來的箭頭狀!怎麼寫呢?我想問一下滑鼠那...