PHP中大于2038年时间戳的问题处理
php在进行时间格式化的时候遇到了2038问题,就是时间只要大于2038年就会出错。只有是32位系统,PHP版本 <= 3.x.x 的时候会出现,64位系统和PHP > 3.x.x,就没问题。
解决方法:new DateTime解决,下面是整合的方法(ThinkPHP框架):
function fun_strtotime($var1=0,$var2=0){
if(!$var2){
$var2 = $var1;
$var1 = 0;
}
if(is_numeric($var2)){
$var2 = ‘@’.$var2;
}
try{
$date = new \DateTime($var2);
$date->setTimezone(new \DateTimeZone(date_default_timezone_get()));
}catch(Exception $e){ $date = 0;}
if(is_object($date)){
if($var1)
$date->modify($var1);
return $date->format(‘U’);
}else{
return 0;
}
}
标签:PHP