php检查mysql行中的空日期

3lxsmp7m  于 2021-06-21  发布在  Mysql
关注(0)|答案(3)|浏览(360)

我创建了一个新的日期列,它默认为 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是在那里工作。很抱歉浪费大家的时间,我非常感谢大家的快速回复。

wgmfuz8q

wgmfuz8q1#

如果我们不确定如何返回日期,请尝试同时使用date和strotime以确保格式正确:

if (date('Y-m-d', strtotime($row['date'])) > '0000-00-00'){
    //Valid
}
zpgglvta

zpgglvta2#

你可以检查以下情况而不是你的。。。
在那里 strtotime() 如果不包含特定的日期字符串,则返回false,或者为了正确检查可以使用的空字符串,返回false empty() 函数并检查字符串是否包含 '0000-00-00' 喜欢的数据,然后你可以使用 strpos() 如下代码所示:

if(empty(trim($row['date'])) || (strpos($row['date'], '0000-00-00') !== false) || (!strtotime($row['date'])))
{
    // empty date
}
balp4ylt

balp4ylt3#

简单使用 empty()strtotime 我会检查所有的空箱子

<?php
    $row['date'] = '0000-00-00';

    if(empty(strtotime($row['date']))){
        // empty date
    }
    else{
        //not empty date
    }

如果你的3个条件,它应该像下面,而不是使用 if 梯子的使用 else if 在第二种情况下,将timestamp integer(strtotime将返回int seconds)与正确的字符串date('0000-00-00')进行比较

<?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
    }

相关问题