问题很简单,想要判断datetime是否空:
if(empty(strtotime("0000-00-00 00:00:00"))){
echo "a";
}else{
echo "b";
}
在本地是没什么问题的,放到服务器端时出错。然后网上搜索问题所在,都说empty用错了,empty函数只能用于检查变量,example:
错误:正确:empty(trim($s))
empty($s)
于是我就改成:
$s = strtotime("0000-00-00 00:00:00");
empty($s)
还是错误。
然后检测服务器端的输出:strtotime("0000-00-00 00:00:00"),竟然和本地不一样,本地时0,服务器端是负值:-62170012800
最后发现原来strtotime("0000-00-00 00:00:00")在32bit和64bit的php环境中返回值是不同的,分别返回0和负值时间戳。
代码改成这样就可以了:
完美!if(strtotime("0000-00-00 00:00:00")<=0){
echo "a";
}else{
echo "b";
}