2012-07-17 60 views
0

我有日期的格式为:比较日期,只显示未来事件:PHP

June 22, 2012 

使用PHP的日期功能我得到的日期,像这样:

​​

如果使用声明我比较两个希望消除所有已经通过的日期:

if(date("F j, Y") > $date) 

然而,它的工作,但离开除了一个日期:

February 14, 2012 

有人可以解释为什么或告诉我一个更好的方法来做到这一点?

+0

http://stackoverflow.com/questions/7038484/how-to-compare-two-dates-in-php-and-echo-newer-one?lq=1 – 2012-07-17 04:51:26

+1

不要比较字符串,你会因为F在字母D之后出现,所以“2012年2月”这样的愚蠢行为会比“2012年12月”更大。比较原生的PHP时间戳 - 简单的整数。 – 2012-07-17 04:52:48

回答

5

date()返回一个字符串,所以在你的情况下,它只返回大于字符串“2012年6月22日”的字符串。尝试在你的约会使用strtotime()()调用,e.g

$today = strtotime($todays_date); 

这将需要()的返回日期时间字符串,并将其转换为UNIX时间戳,你可以用它来比较日期。

+0

非常感谢!它令人惊讶,当你疲倦的时候你会忽略它 – 2012-07-17 05:21:44

+0

很高兴帮助....我确切地知道你的意思:) – ply 2012-07-17 05:37:53