检查$ date是否等于0000-00-00 00:00:00

Muh*_*riq 17 php date

我想要一个逻辑,如果$ due等于没有日期,那么我希望数据从2000开始.我的代码不起作用.

if($due == '0000-00-00 00:00:00'){
    $due =  strtotime('2000-00-00 00:00:00');
}
Run Code Online (Sandbox Code Playgroud)

Umb*_*lla 33

如果你在$ due中存储strtotime(),那么你也需要比较它

if($due == strtotime('0000-00-00 00:00:00')){
    $due =  strtotime('2000-00-00 00:00:00');
}
Run Code Online (Sandbox Code Playgroud)

或者,更简单

if($due == 0){
    $due =  strtotime('2000-00-00 00:00:00');
}
Run Code Online (Sandbox Code Playgroud)

但是如果$ due来自你的db作为字符串,你会想要strtotime()它:

$due = strtotime($due);
if($due == 0){
    $due =  strtotime('2000-00-00 00:00:00');
}
Run Code Online (Sandbox Code Playgroud)

但要注意时区.也就是说,strtotime('0000-00-0000:00:00 UTC')!= strtotime('0000-00-0000,00:00 EST').这也可能会打破你的比较.

  • strtotime('0000-00-0000:00:00')可能会返回减去值,null,false取决于PHP版本 (9认同)

Hos*_*esi 5

我不知道为什么 strtotime 对我来说不能正常工作。可能是因为时区和其他原因。

一如既往,奇特的正则表达式就像一个魅力。我对它有点上瘾了!

if(preg_match("/0{4}/" , $dbDateField))
{
    // no its not acceptable
}
else
{
    //ok
}
Run Code Online (Sandbox Code Playgroud)