PHP检查mysql行为空日期

时间:2018-01-18 03:27:06

标签: php mysql date

我创建了一个新的日期列,它默认为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正在那里工作。很抱歉浪费每个人的时间,我很欣赏快速回复。

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
}