国产探花免费观看_亚洲丰满少妇自慰呻吟_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’);

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 武义县| 阿鲁科尔沁旗| 佛坪县| 日喀则市| 郑州市| 灵川县| 绥棱县| 绍兴市| 嘉善县| 随州市| 苏尼特右旗| 南康市| 吉木萨尔县| 柳河县| 旌德县| 南皮县| 科技| 昭平县| 诏安县| 商都县| 新竹县| 安康市| 乳源| 松溪县| 稷山县| 长沙市| 江川县| 禄丰县| 工布江达县| 华容县| 新宁县| 安庆市| 竹山县| 奉新县| 尚义县| 兴宁市| 威海市| 洞口县| 许昌县| 广宁县| 弋阳县|