Php 为什么';如果语句有效,这难道不简单吗?

Php 为什么';如果语句有效,这难道不简单吗?,php,Php,我有一件简单的事情要解决 我将一个日期存储在一个表中,并将其与php生成的日期进行比较 即: 我的结局是: hi 这可能是一个黄昏时刻,我认为左边是右边,一个大于的符号实际上是一个小于的符号。所以请帮帮我-为什么这不起作用?要比较日期,您必须使用strotime()来比较$row['start\u date']和time() if(strotime($row['start\u date'])

我有一件简单的事情要解决

我将一个日期存储在一个表中,并将其与php生成的日期进行比较

即:

我的结局是:

hi

这可能是一个黄昏时刻,我认为左边是右边,一个大于的符号实际上是一个小于的符号。所以请帮帮我-为什么这不起作用?

要比较日期,您必须使用
strotime()
来比较
$row['start\u date']
time()

if(strotime($row['start\u date'])
使用
strotime()
将字符串转换为unix时间戳,然后进行比较。
或者使用对象。

我不确定将日期作为字符串进行比较的有效性,使用或和比较时间戳可能是更可靠的选项,但使用此日期格式时,它应该作为字符串使用

除此之外,您的逻辑似乎按照书面形式工作(如果不是预期的)。“…13”小于“…15”,因此
if
将计算为
true
并打印“hi”


从内联评论来看,这似乎实际上可能是你所说的那些黄昏时刻之一。

如果
$row['start\u date']='2011-09-13'
date(“Y-m-d”)='2011-09-15'
,那么你的PHP日期大于行的日期,因此
如果
是真的,那么
'2011-09-13'
毕竟是“更小的”(
我建议.Hmmm,但是
'2011-09-13'
不是真的吗?在PHP中,使用
@Evan Teran:它们在词汇上是可以比较的字符串。代码应该可以工作您不必“必须”使用
strotime()
if $row['start_date'] === '2011-09-13' AND date("Y-m-d") === '2011-09-15'.
hi
if(strtotime($row['start_date']) < time())
if($row['start_date'] > date("Y-m-d")) {

    // table stored date larger than php date
    echo 'hi';

}  else {

    // php date larger than table stored date
    echo 'bye';

}