我正在尝试在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'。我不确定为什么?
答案 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');
}
希望这会有所帮助......