PHP 中将当前日期与 d/mm/yyyy 格式的日期进行比较
检查给定日期(字符串 d/mm/yyyy)是否是过去的最佳方法是什么? 当我使用 strtotime() 时,由于非美国表示法,它效果不佳。 当然,我可以将日期作为字符串处理并比较子字符串,但必须有更好的方法。
if((strtotime('now')-strtotime($date)) > 86400) echo $date;
What is the best way to check if a given date - a string d/mm/yyyy is a past?
When I used strtotime(), it didn't work well, because of non-American notation.
Of course I might deal with the dates as strings and compare substrings, but there has to be a better way.
if((strtotime('now')-strtotime($date)) > 86400) echo $date;
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
strtotime('now')
是对该函数的严重滥用。您应该只使用 time() 来获得完全相同的结果,而不需要任何 strtotime 开销。date_create_from_format() 的相关文档
strtotime('now')
is a hideous abuse of the function. You should just usetime()
to get the EXACT SAME result with none of the strtotime overhead.relevant docs for date_create_from_format()
strtotime() 手册
所以一个简单的
str_replace('/', ' -', $date)
应该可以解决问题。strtotime() manual
So a simple
str_replace('/', '-', $date)
should do the trick.那么显而易见的答案是像这样重新格式化字符串:
EDIT
但是,Marc B 的答案更好,所以就这样做。
Well the obvious answer would be to reformat the string like this:
EDIT
However, Marc B's answer is better, so do that.
如果您运行的是>PHP5,这可以解决问题:
使用如下:
If you're running >PHP5, this would do the trick:
used like: