1. 程式人生 > 實用技巧 >PHP函式辨析

PHP函式辨析

把 query_string 轉化到第二個引數中成為陣列

mb_parse_string parse_string

strtotime

今天是2018-07-31 執行程式碼:

date("Y-m-d",strtotime("-1 month"))

輸出是2018-07-01 為什麼?

  1. 先做-1 month, 那麼當前是07-31, 減去一以後就是06-31.
  2. 再做日期規範化, 因為6月沒有31號, 所以就好像2點60等於3點一樣, 6月31就等於了7月1
var_dump(date("Y-m-d", strtotime("2017-06-31")));
//輸出2017-07-01

那怎麼辦呢?
從PHP5.3開始呢, date新增了一系列修正短語, 來明確這個問題, 那就是"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

參考 https://www.laruence.com/2018/07/31/3207.html