最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php使用strtotime技巧示例解惑

 更新時間:2022年09月20日 16:15:15   作者:Student_Li  
這篇文章主要為大家介紹了php使用strtotime技巧示例解惑,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

引言

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

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

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

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

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

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

先做 - 1 month, 那么當(dāng)前是 07-31, 減去一以后就是 06-31.
再做日期規(guī)范化,因為 6 月沒有 31 號,所以就好像 2 點 60 等于 3 點一樣,6 月 31 就等于了 7 月 1
是不是邏輯很” 清晰” 呢?我們也可以手動驗證第二個步驟,比如:

var_dump(date("Y-m-d", strtotime("2017-06-31")));
//輸出2017-07-01

也就是說,只要涉及到大小月的最后一天,都可能會有這個迷惑,我們也可以很輕松的驗證類似的其他月份,印證這個結(jié)論:

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 自動” 規(guī)范化”:

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 來的更加優(yōu)雅.

以上就是php使用strtotime技巧示例解惑的詳細(xì)內(nèi)容,更多關(guān)于php strtotime解惑的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • php實現(xiàn)簡單加入購物車功能

    php實現(xiàn)簡單加入購物車功能

    本文主要介紹了php實現(xiàn)簡單加入購物車功能的方法,具有很好的參考價值。下面跟著小編一起來看下吧
    2017-03-03
  • PHP與MySQL開發(fā)中頁面亂碼的產(chǎn)生與解決

    PHP與MySQL開發(fā)中頁面亂碼的產(chǎn)生與解決

    一般來說,亂碼的出現(xiàn)有2種原因,首先是由于編碼(charset)設(shè)置錯誤,導(dǎo)致瀏覽器以錯誤的編碼來解析,從而出現(xiàn)了滿屏亂七八糟的“天書”,其次是文件被以錯誤的編碼打開,然后保存,比如一個文本文件原先是GB2312編碼的,卻以UTF-8編碼打開再保存。要解決上述亂碼問題,首先需要知道開發(fā)中哪些環(huán)節(jié)涉及到了編碼:
    2008-03-03
  • php生成網(wǎng)頁桌面快捷方式

    php生成網(wǎng)頁桌面快捷方式

    本文將介紹使用PHP生成網(wǎng)頁桌面快捷方式的代碼,并添加圖標(biāo)及解決不同瀏覽器保存出現(xiàn)的亂碼問題。下面跟著小編一起來看下吧
    2017-05-05
  • php編寫批量生成不重復(fù)的卡號密碼代碼

    php編寫批量生成不重復(fù)的卡號密碼代碼

    本文給大家分享的是一個十分實用的代碼,項目中經(jīng)常需要用到,可以批量生成不重復(fù)的卡號密碼的2種方法,有需要的小伙伴參考下吧。
    2015-05-05
  • Linux服務(wù)器下PHPMailer發(fā)送郵件失敗的問題解決

    Linux服務(wù)器下PHPMailer發(fā)送郵件失敗的問題解決

    這篇文章主要給大家介紹了關(guān)于如何解決Linux服務(wù)器下PHPMailer發(fā)送郵件失敗的問題,文中通過示例代碼介紹的很詳細(xì),相信對大家具有一定的參考價值,需要的朋友們下面來一起看看吧。
    2017-03-03
  • 淺談PHP定義命令空間的幾個注意點(推薦)

    淺談PHP定義命令空間的幾個注意點(推薦)

    下面小編就為大家?guī)硪黄獪\談PHP定義命令空間的幾個注意點(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-10-10
  • php實現(xiàn)獲取本年,本月,本周時間戳和日期格式

    php實現(xiàn)獲取本年,本月,本周時間戳和日期格式

    這篇文章主要為大家詳細(xì)介紹了php實現(xiàn)獲取本年、本月、本周時間戳和日期格式的相關(guān)方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以學(xué)習(xí)一下
    2023-12-12
  • php遞歸實現(xiàn)無限分類生成下拉列表的函數(shù)

    php遞歸實現(xiàn)無限分類生成下拉列表的函數(shù)

    php自定義函數(shù)之遞歸實現(xiàn)無限分類生成下拉列表,這樣可以提高效率,不用每次都從數(shù)據(jù)庫讀取數(shù)據(jù)。
    2010-08-08
  • php定期拉取數(shù)據(jù)對比方法實例

    php定期拉取數(shù)據(jù)對比方法實例

    這篇文章主要給大家介紹了關(guān)于php定期拉取數(shù)據(jù)對比的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用php具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • 詳解PHP中mb_strpos的使用

    詳解PHP中mb_strpos的使用

    這篇文章主要介紹了詳解PHP中mb_strpos的使用,通過使用語法以及實例給大家詳細(xì)分析了用法,需要的朋友參考學(xué)習(xí)下。
    2018-02-02

最新評論

华池县| 韶山市| 安达市| 万山特区| 微博| 札达县| 屯门区| 治县。| 瓦房店市| 类乌齐县| 瑞金市| 商南县| 灌云县| 平南县| 镇康县| 徐水县| 阜南县| 临沂市| 平潭县| 丽江市| 朔州市| 抚宁县| 墨竹工卡县| 封开县| 招远市| 淮阳县| 镇沅| 攀枝花市| 白水县| 武陟县| 博野县| 龙山县| 龙江县| 遵义市| 当涂县| 东乌| 哈密市| 东方市| 通榆县| 沙洋县| 闻喜县|