国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > PHP > 正文

總結了php時間處理問題

2024-05-04 21:50:30
字體:
來源:轉載
供稿:網友

問題就是通過一個時間處理

echo date('Ymd', strtotime('+1 month', strtotime('20150130')) );

按照朋友的想法,應該輸出的是20150227 ,而實際輸出的是20150302

也就是說1月的29,30,31號輸出都是3月份的天數,并不是想要得到的2月的天數。

按照我的理解是,當月+1個月的天數即是相加當月的天數,這個想法也得到驗證。

例:

echo date('Ymd', strtotime('+1 month', strtotime('20150331')) );

想得到20150430 結果得到的是20150501

所以按照這樣的寫法在統計的時候會出現錯誤。當然我沒看過他寫的程序,

也不明白為何是在月底加一個月。

我給他的解決方案是,每個月都重新開始計算。這樣就不會出錯

最后他給的終極解決法案是:

echo date('Ym', strtotime('first day of next month', strtotime('20150130')) );

證實跟我的想法是一樣的。

他這個死腦筋一定要證明是php不完善,還特地去找ruby的解決方案。

按照她的要求我貼出他找的ruby的代碼:

Date.new(2015,1,30) +

ruby的最后結果就是希望得到的2月27號

PHP時間差8小時的問題問題原因所在

從php5.1.0開始,php.ini里加入了date.timezone這個選項,默認情況下是關閉的

也就是顯示的時間(無論用什么php命令)都是格林威治標準時間

和我們的時間(北京時間)差了正好8個小時。

有以下3中方法可以恢復正常的時間。

1、最簡單的方法就是不要用php5.1以上的版本

2、如果一定要用,而且不能修改php.ini,則需要在關于時間的初始化的語句的

上面加上 date_default_timezone_set (‘XXX’);

3、一勞永逸,僅限能修改php.ini。打開php.ini查找date.timezone 去掉前面的分號

date.timezone = PRC,重啟http服務(如apache2或iis等)即可

【相關注解:】↓ 

關于XXX,大陸內地可用的值是:Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi (依次為重慶,上海,烏魯木齊)

港臺地區可用:Asia/Macao ,Asia/Hong_Kong ,Asia/Taipei (依次為澳門,香港,臺北)

還有新加坡:Asia/Singapore

老外好像把北京漏調了

其他可用的值是:Etc/GMT-8 ,Singapore ,Hongkong ,PRC

PRC是什么?PRC是中華人民共和國啊-_-

你可以到http://www.php.net/docs.php上查到更多的地區

由于程序最后還是會把地名轉為時區來計算,所以當你使用的不是內置的區域的時候,程序將自動使用格林威治標準時間。

請注意:

如果沒有修改php.ini的權限,那么應該在調用date()方法之前加上date_default_timezone_set(‘PRC’);

參數要加上雙引號或單引號。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 屏东县| 启东市| 临漳县| 呼玛县| 凤冈县| 苍山县| 普安县| 黄石市| 铁力市| 昌宁县| 永年县| 资兴市| 汾西县| 团风县| 浑源县| 博乐市| 古蔺县| 赤峰市| 东乡| 武乡县| 锦州市| 湘潭县| 莆田市| 旬阳县| 庐江县| 元氏县| 崇文区| 台安县| 博爱县| 道孚县| 历史| 长子县| 香港 | 东丽区| 乌拉特后旗| 繁昌县| 凤冈县| 通海县| 木里| 榕江县| 康平县|