我正在尝试将未来日期与今天的日期进行比较。此代码应返回false,但返回true。
return (date('d-m-y') > date('15-03-14')) ? true : false;
答案 0 :(得分:1)
首先,你不需要短路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');
答案 1 :(得分:0)
因为它们被比较为字符串而不是日期。
如果您想比较日期,请使用以下内容:
return new DateTime() > new DateTime('2014-03-15');
答案 2 :(得分:0)
日期函数返回字符串,因此您比较两个字符串:
'27-02-14' > '15-03-14'
字符串与char进行比较,在0位我们有:
'2' > '1' - and this is true
答案 3 :(得分:0)
您可以使用strtotime()
return (strtotime(date('d-m-y')) > strtotime(date('15-03-14'))) ? true : false;
或者使用DateTime::diff()