解决php/mysql日期无法超过2038年小技巧 [复制链接]

moqu8 2021-12-5

1732 0
mysql存储日期部分程序使用了int字节,有符号时最大只能是2038年,无符号也无法超过2106年,这对于一个长期发展的程序来说,虽然足够,但是依然让很多站长不爽!解决方法除了使用mysql自带的DATETIME 和 TIME 格式数据,还可以使用bigint类型,这对于一些已经使用int为时间戳存储的老程序比较适合。


修改mysql数据类型之后,过大的时间戳数据可能不适合原有的PHP程序,因此需要做一些修改,可按照如下函数处理:


function systemdate($curformat, $utc_value) {

while(1) {
if($utc_value > 2147483647) {

if(@date('Y', $utc_value) < 2038) {
$mydate2 = new DateTime('@'.$utc_value);
$string = $mydate2->format($curformat);
break;
}
}

$string = date($curformat, $utc_value);
break;
}

return $string;
}


如此即可显示最大9999年的时间了,应该足够用到世界末日了吧。

最新回复 (0)
返回
支持中心
邮箱:winkill2012@qqcom
新站优化中!部分功能尚未完善,敬请谅解!
支持中心