为什么这个简单的if语句不起作用?

时间:2011-09-15 01:41:31

标签: php

我有一个简单的事情,我想解决。

我有一个存储在表格中的日期,我将它与php生成的日期进行比较。

即:

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';

}

这对我来说似乎没问题,但是

if $row['start_date'] === '2011-09-13' AND date("Y-m-d") === '2011-09-15'.

我最终得到了:

hi

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

4 个答案:

答案 0 :(得分:4)

要比较strtotime()$row['start_date'] {/ 1>}必须使用time()的日期

if(strtotime($row['start_date']) < time())

答案 1 :(得分:2)

如果$row['start_date'] = '2011-09-13'date("Y-m-d") = '2011-09-15',那么您的PHP日期大于行的日期,因此if为真,所有'2011-09-13'为“更小({{ 1}})“比<。将您的'2011-09-15'翻转为<即可。

>

答案 2 :(得分:1)

使用strtotime()将字符串转换为unix时间戳,然后进行比较。 或者使用DateTime对象。

答案 3 :(得分:0)

我不确定使用DateTimestrtotime将日期比较为字符串的有效性,并且比较时间戳可能是更强大的选项,但使用此日期格式时,它应该作为字符串使用。

除此之外,你的逻辑似乎是按照书面形式工作的(如果不是那样的话)。 “... 13” 小于“... 15”,因此if将评估为true,并且将打印“hi”。

从内联评论来看,它似乎可能是你所说的那些暮色时刻之一。

相关问题