最近在php 和 mysql上碰到了一个计算日期Bug:在mysql中使用date_add计算日期,比如date_add(now(),interval 30 year),然后保存进去的值就变成了’0000-00-00 00:00:00’;在php 中使用strtotime计算日期,比如(‘2143-08-22 15:23:56 -100 year’),然后格式化后就变成了’1970-01-01 ‘。后来google了下,发现这是著名的2038年问题。
这个问题是因为在32位操作系统上日期类型是一个有正负号的32位整数,2147483647 是能表示的最大32为正整数,对应2038-01-19 03:14:07,超出了就“绕回”,所以不能正常处理。 继续阅读
PHP 和 Mysql 日期问题
发表评论