【发布时间】:2011-10-03 11:00:30
【问题描述】:
我想在 PHP 中比较两个日期。 一个日期是到期日期,由用户提供,存储在数据库中并使用 PHP 检索。 第二个是今天的日期。
$unixdue = strtotime($query['date_due']); //Converts the database integer to Unix date
$duestamp = date("dmY", $unixdue); //Converts the Unix date to dd-mm-yyyy
//If the due date is larger than today (i.e., after today), it's early.
if ($query['complete'] == 0 AND date("dmY") < $duestamp) {echo "Early";}
//If the due date is smaller than today (i.e., before today), it's late.
elseif ($query['complete'] == 0 AND date("dmY") > $duestamp) {echo "Late";}
//If the due date IS today, it's today.
elseif ($query['complete'] == 0 AND date("dmY") == $duestamp) {echo "Today";}
它适用于今天的日期,但所有其他日期都返回“早”,即使它们不早。 因此,我什至无法判断其余部分是否正常工作。
我尝试比较两个 Unix 日期,但它们也包括时间,而我实际上只想要日期。如果我比较两个 unix 日期,我不能说某事是否是“今天”。
【问题讨论】:
-
你能显示一些实际数据吗?
date_due包含什么内容以及它被制成什么时间戳? -
您不是在比较日期,而是在比较字符串。
-
这不是 PHP,这是你的代码。
标签: php mysql unix date compare