本文主要是介绍PHP下Unix时间戳与日期互转(解决1970年前及2038年后问题),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
这个问题主要在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');
}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
这篇关于PHP下Unix时间戳与日期互转(解决1970年前及2038年后问题)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!