2038年的问题
今天遇到一个问题,就是php的时间戳在遇到2038年后,时间就会溢出,php提供的时间函数datetime可以解决这个问题。
$date = '2090-10-01';
$datetime = new DateTime($date);
echo '<p>正常时间: ', $datetime->format('Y-m-d H:i'), '</p>';//正常时间: 2090-10-01 00:00
echo '<p>时间溢出: ', date('Y-m-d H:i', strtotime($date)), '<p>';//时间溢出: 1970-01-01 08:00
但是感觉这个时间不太实用啊,它需要指定datetime格式的时间,而不是时间戳,如果我都有时间了,我还要你的format干嘛。
我现在有一个时间点,需要加上一个时间间隔,strtotime('+1000 year'),这个新得到的时间超过了2038年,结果是1970-01-01。。。。,怎么获取到相加的正确结果呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
一看你就没看文档,DateTime对象可以用时间戳的哦,详细看http://php.net/manual/zh/date...
php7 没毛病。
php > echo date("Y-m-d H:i:s", strtotime('+1000 year'));
3017-03-13 04:21:07