中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php中怎么使用strtotime

發布時間:2022-09-22 09:43:51 來源:億速云 閱讀:127 作者:iii 欄目:開發技術

本篇內容主要講解“php中怎么使用strtotime”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“php中怎么使用strtotime”吧!

引言

經常會有人被 strtotime 結合 - 1 month, +1 month, next month 的時候搞得很困惑,然后就會覺得這個函數有點不那么靠譜,動不動就出問題。用的時候就會很慌…

這不,剛剛就有人在微博上又問我:

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

今天是 2018-07-31 執行代碼,怎么輸出是 2018-07-01?

好的吧,雖然這個問題看起來很迷惑,但從內部邏輯上來說呢,其實是” 對” 的,你先別著急哈,讓我慢慢講:

我們來模擬下 date 內部的對于這種事情的處理邏輯:

先做 - 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 開始呢,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

那如果是 5.3 之前的版本 (還有人用么?), 你可以使用 mktime 之類的,把所有的日子忽略掉,比如都限定為每月 1 號就可以了,只不過就不如直接用 first day 來的更加優雅.

到此,相信大家對“php中怎么使用strtotime”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临武县| 枝江市| 内江市| 河南省| 上蔡县| 西和县| 扶余县| 思茅市| 清镇市| 怀安县| 新安县| 邵武市| 扶余县| 赫章县| 中牟县| 巴彦淖尔市| 阿巴嘎旗| 南部县| 平陆县| 华安县| 疏附县| 商南县| 无锡市| 怀仁县| 通河县| 手机| 肥西县| 六枝特区| 合水县| 南丹县| 封丘县| 绍兴县| 依兰县| 班玛县| 海盐县| 琼结县| 衡南县| 安平县| 泾源县| 溆浦县| 太保市|