本文實例講述了PHP基于DateTime類解決Unix時間戳與日期互轉問題。分享給大家供大家參考,具體如下:
這個問題主要在32位的系統下出現,64位的不存在這樣的問題。php 5.2+提供了DateTime類來處理這樣的問題,參考方案如下(請注意時區的處理):
- //1、Unix時間戳轉日期
- function unixtime_to_date($unixtime, $timezone = 'PRC') {
- $datetime = new DateTime("@$unixtime"); //DateTime類的bug,加入@可以將Unix時間戳作為參數傳入
- $datetime->setTimezone(new DateTimeZone($timezone));
- return $datetime->format("Y-m-d H:i:s");
- }
- //2、日期轉Unix時間戳
- function date_to_unixtime($date, $timezone = 'PRC') {
- $datetime= new DateTime($date, new DateTimeZone($timezone));
- return $datetime->format('U');//Vevb.com
- }
- echo date_to_unixtime("1900-1-31 00:00:00"); //輸出-2206425952
- echo '<br>';
- echo unixtime_to_date(date_to_unixtime("1900-1-31 00:00:00")); //輸出1900-01-31 00:00:00
新聞熱點
疑難解答