admin 发表于 2016-5-12 13:51:32

PHP对于小于1970年大于2038年的时间戳的处理

(32位)PHP对于小于1970年大于2038年的时间戳的处理函数,代码如下:
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");
}
function date_to_unixtime($date, $timezone = 'PRC') {
    $datetime= new DateTime($date, new DateTimeZone($timezone));
    return $datetime->format('U');
}
echo '小于1970年的:'.unixtime_to_date(date_to_unixtime('1500-1-1 00:00:00') -1).'<br>';

echo '大于2038年的:'.unixtime_to_date(date_to_unixtime('2100-1-1 00:00:00') -1);

64位PHP无此问题

页: [1]
查看完整版本: PHP对于小于1970年大于2038年的时间戳的处理