如何通过PHP判断MySQL中的日期时间字段是否过去?

时间:2013-03-13 18:31:30

标签: php mysql

我正在为一所学校建立一个网站,一个教师可以添加作业的地方。所有这些分配都存储在MySQL表中,其中包含datetime类型的字段,用于存储截止日期。我正在寻找一种方法,用PHP来检查截止日期是否已经过去,这样我就可以为老师和学生提供视觉反馈。任何帮助将不胜感激!

3 个答案:

答案 0 :(得分:3)

我会使用PHP的日期比较工具。这是一个例子:

$date1 = new DateTime("now");
$date2 = $yourDateFromTheDatabase;
if ($date2 < $date1) {
    //it still has time
} else {
    //time has passed
}

这有帮助吗?您可以在此处找到更多示例:http://php.net/manual/en/datetime.diff.php

答案 1 :(得分:2)

您可以在查询中使用MYSQL实际处理此问题,我会发现这样更容易,因为您不必在php中处理日期。 例如:

SELECT DueDate, (DueDate < CURDATE()) FROM table;

(DueDate&lt; CURDATE())返回0/1

否则:

Compare given date with today

答案 2 :(得分:1)

根据您将日期存储到 datetime 字段的方式(希望您使用的是TIMESTAMP),您可以使用PHP strtotime 函数来解析MySQL时间戳到Unix时间戳中,可用于比较PHP值。这是一个例子:

$res = mysql_query("SELECT datetime FROM assignments;");

while ( $row = mysql_fetch_array($res) ) {
    $date = date("g:i a F j, Y ", strtotime($row["date"]));
}

并与$date变量进行比较。这是对一个想法的超级粗略和粗略的看法,但希望它有所帮助。

您可以详细了解此概念here

祝你好运!