比较 PHP 中的日期.为什么此代码返回 true



我正在尝试将未来的日期与今天的日期进行比较。此代码应返回 false,但它返回 true。

return (date('d-m-y') > date('15-03-14')) ? true : false;

首先,你不需要短路 if-else 语句,只需使用

return date('d-m-y') > date('15-03-14');
其次,您比较的是两个字符串

而不是两个日期,因此字符串比较与日期比较不同。

您应该使用strtotime()函数或使用DateTime对象

return (strtotime(date('d-m-y')) > strtotime(date('15-03-14'))

return new DateTime() > new DateTime('2014-03-15');

因为它们被比较为字符串而不是日期。

如果要作为日期进行比较,请使用以下内容:

return new DateTime() > new DateTime('2014-03-15');

日期函数返回字符串,因此您可以比较两个字符串:

'27-02-14' > '15-03-14'

字符串逐个字符比较,在位置 0 我们有:

'2' > '1' - and this is true
您可以使用

strtotime()将日期转换为整数

return (strtotime(date('d-m-y')) > strtotime(date('15-03-14'))) ? true : false;

或者使用DateTime::diff()

相关内容

  • 没有找到相关文章