strtotime(“0000-00-00 00:00:00”) 的坑
想要的效果是当值为“0000-00-00 00:00:00”时,返回1;
图一,在本地运行返回1,在服务器运行返回2
二、问题分析
1、一直以来的思维是strtotime("0000-00-00 00:00:00")的值为0,这样图一返回1
2、图二,在线php工具中运行,strtotime("0000-00-00 00:00:00")的返回值竟然为负值时间戳,!strtotime("0000-00-00 00:00:00")值变为false,结果返回2
3、最后发现,strtotime("0000-00-00 00:00:00")在32bit和64bit的php环境中返回值是不同的,分别返回0和负值时间戳,
恰好本地的环境是32bit,服务器是64bit,导致结果不同;
参考链接:https://www.mokeyjay.com/archives/735
4、解决方法
三、总结延伸
1、本地php环境位数查看,在入口文件index.php中使用phpinfo()即可查看;
2、服务器 找到php执行文件php.exe的路径为/usr/local/php.5.3.8/bin,直接运行file php即可,值为“x86-64”即代表64bit的php环境
3、php在线工具中
同样输入phpinfo()运行即可。