我现在拥有的是:
$somevar = ($progress_date != ('0000-00-00 00:00:00' || '//'))?$progress_date:'NA';
并且它不会吐出$ progress_date。它默认始终打印'NA'。
执行此操作并使用less()分隔内容
$somevar = ($progress_date != '0000-00-00 00:00:00' || '//')?$progress_date:'NA';
使得$ progress_date总是吐出,即使日期设置为0的字符串也是如此。
有没有办法使用三元语句来捕捉空白日期和日期设置为0,以便打印出“NA”?
答案 0 :(得分:2)
看起来你真正想要的是&&
的一对条件。
$somevar = ($progress_date != '0000-00-00 00:00:00' && $progress_date != '//')?$progress_date:'NA';
每个布尔比较需要有两个方面,所以你不能这样做:
// Won't do what you expect
$somevar = $progress_date != ('thing1' || 'thing2') ? : ;
而是双方进行全面比较。大声朗读,你需要的是有意义的:进度日期不等于thing1,进度日期也不等于thing2
$somevar = $progress_date != "thing1" && $progress_date != "thing2" ? : ;
答案 1 :(得分:2)
$somevar = (!in_array($progress_date, array('0000-00-00 00:00:00','//')) ? $progress_date : 'NA';
答案 2 :(得分:0)
您没有使用或正确使用。
$somevar = ($progress_date != '0000-00-00 00:00:00' && $progress_date !='//') ? $progress_date:'NA';
答案 3 :(得分:0)
我认为应该是
($progress_date != '0000-00-00 00:00:00' && $progress_date !='//')
||
不能按预期使用,因为它总是计算为布尔值。这样$progress_date != ('0000-00-00 00:00:00' || '//')
实际上与:
$temp = '0000-00-00 00:00:00' || '//'; //gives true
$progress_date != $temp;