诀窍操纵和在PHP比较日期和时间是存储的日期/时间值的整数变量,并使用mktime(),日期()和的strtotime()函数。日期/时间的整数表示是自1970年1月1日午夜以来的秒数,其被称为“时代”。一旦你的日期/时间是整数形式,你就可以有效地将它与其他也是整数形式的日期进行比较。
当然,因为你很可能会被从页面的请求和数据库接收的日期/时间值中选择你需要的日期/时间字符串转换为整数,你可以做任何比较或算术之前查询。
假设您确定$ resttimefrom和$ resttimeto变量包含格式正确的时间,您可以使用strtotime()函数将字符串时间转换为整数。 strtotime()接受格式化为日期的字符串,并将其转换为自epoch以来的秒数。
$time_from = strtotime($resttimefrom);
$time_to = strtotime($resttimeto);
附注:strtotime()总是返回整数形式的完整日期。如果你的字符串没有日期,只有一次,strtotime()返回今天的日期以及你在字符串中给出的时间。然而,这对你并不重要,因为strtotime()返回的两个日期将具有相同的日期,并且比较这两个变量将具有期望的效果,即在日期相互抵消时比较两次。
当您比较两个整数时请记住,日期/时间越早,其整数值越小。所以,如果你想看看是否$ time_from低于$ time_to早,你有这样的:
if ($time_from < $time_to)
{
// $time_from is ealier than $time_to
}
我们的日期/时间与当前系统日期/时间比较,只需使用mktime()不带参数表示当前日期/时间:
if ($time_from < mktime())
{
// $time_from is in the past
}
由于其简单的逻辑! – Rajasekar 2010-08-04 10:10:37
可能重复的[PHP的比较日期](http://stackoverflow.com/questions/2113940/php-compare-date) – Kuf 2013-01-24 17:00:25
这是因为$ resttimefrom和$ resttimeto没有定义 – Black 2015-11-05 09:57:22