我创建了一个新的日期列,它默认为0000-00-00
,我想检查它是否有有效日期或全部为零,但这些代码似乎都不适合我,我不能找出原因。我知道它会看到日期,因为当我echo
它时,它会显示为零。如何查看日期列是否为0000-00-00
?这是我尝试过的,但没有一个有效。
if (trim($row['date']) == '' || substr($row['date'],0,10) == '0000-00-00') {
// empty date
}
if (strtotime($row['date']) == '0000-00-00'){
// empty date
}
if ($row['date'] == '0000-00-00'){
// empty date
}
修改 看起来它可能只是我的godaddy托管服务器的问题,我上传文件到一个免费的虚拟主机,解决方案3正在那里工作。很抱歉浪费每个人的时间,我很欣赏快速回复。
答案 0 :(得分:0)
只需使用empty()
strtotime
即可查看所有空案例
<?php
$row['date'] = '0000-00-00';
if(empty(strtotime($row['date']))){
// empty date
}
else{
//not empty date
}
如果关于你的3个条件,它应该像下面而不是使用if
梯形图使用else if
而在第二个条件下你将比较时间戳整数(strtotime将返回int秒)与字符串日期('这是正确的
<?php
$row['date'] = '0000-00-00';
if (trim($row['date']) == '' || substr($row['date'],0,10) == '0000-00-00') {
// empty date
}
else if(strtotime($row['date']) == strtotime('0000-00-00')){
// empty date
}
else if ($row['date'] == '0000-00-00'){
// empty date
}
答案 1 :(得分:0)
您可以检查以下情况而不是您的情况...
如果strtotime()
不包含特定日期字符串,或者为了正确检查空字符串,您可以使用empty()
函数并且检查字符串是否包含'0000-00-00'
类数据,那么strpos()
会返回false,那么您可以使用{ {1}}如下面的代码:
if(empty(trim($row['date'])) || (strpos($row['date'], '0000-00-00') !== false) || (!strtotime($row['date'])))
{
// empty date
}
答案 2 :(得分:0)
如果我们不确定如何返回日期,请尝试同时使用日期和strtotime以确保格式正确:
if (date('Y-m-d', strtotime($row['date'])) > '0000-00-00'){
//Valid
}