如果条件是日期不为空且日期不是' 0000-00-00&{39}

时间:2016-12-12 09:19:09

标签: javascript

我正在尝试在JavaScript / PHP中编写if条件。我得到了datefield shipdate的值。如果shipdate不为空或空,或者发货日期不是'0000-00-00',则shipstatus值应为'Completed''Pending'。我没有得到正确的输出。

下面的脚本有错误吗?

if ((shipdate.getValue() !== "") && (shipdate.getValue() !== '0000-00-00'))
        { 
    shipstatus.setValue('Completed');
    } else {
    shipstatus.setValue('Pending');
}

当我尝试使用console.log时,我获得了一个值'

在console.log中,我获得了这样的值' 1899-11-29T18:30:00.000Z'为了'shipdate'。我不确定为什么?

4 个答案:

答案 0 :(得分:1)

而不是和运算符在if语句中使用OR运算符

if ((shipdate.getValue() !== "") || (shipdate.getValue() !== '0000-00-00'))

答案 1 :(得分:1)

您可以使用预定义的php 功能。

if ( empty(shipdate.getValue()) ||  shipdate.getValue() == '0000-00-00')
{
    shipstatus.setValue('Pending');
}
else
{
    shipstatus.setValue('Completed');
}

或者您可以使用php checkDate 功能:

function validateDate($date, $format = 'Y-m-d H:i:s')
{
    $d = DateTime::createFromFormat($format, $date);
    return $d && $d->format($format) == $date;
}

答案 2 :(得分:1)

首先检查alert或console.log()你得到了什么价值? 如果你得到null然后提出另一个条件

if ((shipdate.getValue() !== "") || (shipdate.getValue() !== NULL) ||(shipdate.getValue() !== '0000-00-00'))
        { 
    shipstatus.setValue('Completed');
    } else {
    shipstatus.setValue('Pending');
}

答案 3 :(得分:1)

尝试:

if (! (strlen(trim(shipdate.getValue())) == 0 || shipdate.getValue() == '0000-00-00'))
{ 
    shipstatus.setValue('Completed');
} else {
    shipstatus.setValue('Pending');
}

希望这会有所帮助......