日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

PHP中strtotime函数有范围吗,PHP中使用strtotime函数注意事项

發(fā)布時間:2023/12/15 php 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PHP中strtotime函数有范围吗,PHP中使用strtotime函数注意事项 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

strtotime函數(shù)在是大家常用的一個時間日期轉(zhuǎn)換成單位S的一個函數(shù)了,但是這個函數(shù)有一個細節(jié)大家可能沒有注意到,就是 使用的時候需要考慮 有31天和 2月份的情況,所以,如果沒有考慮這個特殊的情況,那么在每月的31號或者和2月份有關的時間點時候就可能出現(xiàn)開始的那個靈異情況了,這個情況很多朋友都不記得了,但在很多時間這個非常重要,下面舉例子來給各位介紹一下。

今天在微博上看到一個小案例,命令行如下:

?代碼如下復制代碼

php -r “echo date(‘Y/m’,strtotime(‘-2 months’)) . \”\n\”;”

輸出結(jié)果如下:

2013/03

如果把命令行修改成如下:

?代碼如下復制代碼

php -r “echo date(‘Y/m’,strtotime(‘-3 months’)) . \”\n\”;”

輸出結(jié)果如下:

2013/03

這里就奇怪了,怎么兩個月前和三個月前的年月份都是一樣的,再看看下面的命令行:

?代碼如下復制代碼

php -r “echo date(‘Y/m’,strtotime(‘-3 months’,strtotime(’2013/05/28′))) . \”\n\”;”

輸出結(jié)果如下:

2013/02

如果修改命令行為如下:

?代碼如下復制代碼

php -r “echo date(‘Y/m’,strtotime(‘-3 months’,strtotime(’2013/05/29′))) . \”\n\”;”

輸出結(jié)果如下:

2013/03

下面這個與預期的結(jié)果是一樣的,現(xiàn)在說說為什么會出現(xiàn)開始的那個奇怪的坑。

strtotime里的months和 month是30天,使用的時候需要考慮 有31天和 2月份的情況,所以,如果沒有考慮這個特殊的情況,那么在每月的31號或者和2月份有關的時間點時候就可能出現(xiàn)開始的那個靈異情況,這個算是strtotime的一個坑吧,為了慎重起見,能不用的時候就盡量別去用這個坑人的東東。

PS:以上所有例子都是在Debian6的64位系統(tǒng)下執(zhí)行,使用命令行方式執(zhí)行,執(zhí)行時間是2013-05-30.

上月下月時間不準確

以下有幾種方法,可以幫助我們達到預期效果,比如我要返回上個月的月份:

?代碼如下復制代碼
echo date('M Y', strtotime('midnight first day of -1 month'));

或者:

echo date('M Y', strtotime(date('Y-m-01')) - 86400);

下方是其他的用途:

?代碼如下復制代碼

strtotime('first day of last month');

strtotime('last day of last month');

strtotime('first of last week');

strtotime('first of this week');

strtotime('this week midnight'); // returns Monday midnight of this week

strtotime('last week midnight'); // returns Monday midnight of last week

strtotime('last week Sunday midnight'); // returns Sunday midnight of this week

strtotime('-2 weeks Sunday midnight'); // returns Sunday midnight of last week

date_default_timezone_set('Asia/Shanghai');

$first_day_of_month = date('Y-m',time()) . '-01 00:00:01';

$t = strtotime($first_day_of_month);

print_r(array(

date('Y年m月',$t),

date('Y年m月',strtotime('- 1 month',$t)),

date('Y年m月',strtotime('- 2 month',$t)),

));

?>

總結(jié)

以上是生活随笔為你收集整理的PHP中strtotime函数有范围吗,PHP中使用strtotime函数注意事项的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。