我的日期格式为:dd-mm-yyyy
现在根据php,28-06-2011大于01-11-2011
$today = date('d-m-Y', time());
if("28-06-2011" > $today ){
echo "This returns true";
}
我如何正常运作?
答案 0 :(得分:3)
您无法比较那样的日期。他们是两个字符串。 PHP将尝试将它们解释为数字(取前两位数,然后由于结果证明这是不正确的。确实可以使用-
而失败)并进行比较。YYYY-MM-DD
和>
来比较<
类型字符串。
所以请参阅Col. Shrapnel's answer并更改日期格式 - 无论如何它都有意义。如果你不能这样做(因为它是用户输入的日期或其他),你可以创建两个DateTime
对象,由于PHP 5魔法,你也可以这样比较:
$date1 = new DateTime('2000-01-01');
$date2 = new DateTime('2001-01-01');
if ($date1 > $date2)... // this works
答案 1 :(得分:1)
if(strtotime("28-06-2011") > time()) {
}
答案 2 :(得分:1)
我的日期格式为:dd-mm-yyyy
这就是你错了。
你不应该在这个firmat中有你的约会。将它们放在 yyyy-mm-dd 中,您就可以毫无问题地对它们进行比较。
答案 3 :(得分:-1)
您无法将日期与字符串进行比较。 创建另一个类似于今天变量的日期项目,其固定日期为28-06-2011,然后比较2个对象。 $ datetocompare = date(“d-m-Y”,mktime(0,0,0,28,06,2011));
if($ datetocompare&gt; $ today){} 这将有效。
答案 4 :(得分:-1)
如果你这样做,你实际上是在比较字符串,而不是日期。要正确比较日期,您需要将日期值/字符串转换为time stamps
,您可以使用strtotime
函数来完成此任务。