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

php使用strtotime技巧示例解惑

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

引言

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

這不,剛剛就有人在微博上又問(wèn)我:

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

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

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

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

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

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

也就是說(shuō),只要涉及到大小月的最后一天,都可能會(huì)有這個(gè)迷惑,我們也可以很輕松的驗(yàn)證類似的其他月份,印證這個(gè)結(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 新增了一系列修正短語(yǔ),來(lái)明確這個(gè)問(wèn)題,那就是”first day of” 和 “last day of”, 也就是你可以限定好不要讓 date 自動(dòng)” 規(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 號(hào)就可以了,只不過(guò)就不如直接用 first day 來(lái)的更加優(yōu)雅.

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

相關(guān)文章

  • php實(shí)現(xiàn)簡(jiǎn)單加入購(gòu)物車功能

    php實(shí)現(xiàn)簡(jiǎn)單加入購(gòu)物車功能

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

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

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

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

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

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

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

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

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

    淺談PHP定義命令空間的幾個(gè)注意點(diǎn)(推薦)

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

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

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

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

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

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

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

    詳解PHP中mb_strpos的使用

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

最新評(píng)論

扶绥县| 绥棱县| 甘肃省| 庆云县| 茂名市| 岐山县| 苗栗市| 安国市| 海伦市| 精河县| 隆德县| 维西| 宁夏| 壶关县| 宕昌县| 麻栗坡县| 南投市| 江口县| 潮安县| 射洪县| 长沙市| 仁化县| 寻乌县| 漳州市| 临海市| 德令哈市| 墨竹工卡县| 工布江达县| 汝阳县| 尚志市| 景宁| 宝兴县| 玉山县| 辉南县| 志丹县| 梁山县| 延川县| 买车| 托克逊县| 陇西县| 东山县|