本文主要是介绍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()运行即可。
这篇关于strtotime(0000-00-00 00:00:00) 的大“坑”的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!