最近写代码是发现一个bug 。
一般为了方便查询 ,把数据库时间保存成时间戳,数据库中用int类型,有时候还加上unsigned限制,如果时间是1970 00:00:00 之前,而且还使用strtotime 转化,
会出现bug.
例如:
$time='1967-09-10';//在1970 00:00:00之前
$time=strtotime($time);
此时的$time是个负数,如果数据库中int 还有unsigned限制的话,那么$time在数据库中保存不了始终为0.
小细节 ,切记!
本文探讨了在处理早于1970年的日期时,使用PHP strtotime函数将字符串转换为时间戳可能导致的问题。当时间戳为负数且数据库字段设置为无符号整型时,数据无法正确保存。
695

被折叠的 条评论
为什么被折叠?



