php - 比较两个日期

时间:2012-09-02 04:34:32

标签: php

我有以下代码我试图比较两个get以进入if语句但我错了是代码。

如果时间超过23:29且小于08:10,则应运行以下代码...

$gettime="04:39"; // getting this from database

$startdate = strtotime("23:29");
$startdate1 = date("H:i", $startdate);

$enddate = strtotime("08:10");
$enddate1 = date("H:i", $enddate);


//this condition i need to run    

if($gettime >= strtotime($startdate1) && $gettime <= strtotime($enddate1))
{
echo"ok working";
}

请不要帮我

感谢

5 个答案:

答案 0 :(得分:1)

您正在将字符串与日期进行比较。 $ gettime是一个字符串,您将它与时间对象进行比较。

您需要通过调用$ gettime = strtotime($ gettime)将$ gettime转换为时间对象,然后您可以使用&gt;进行比较。或者&lt;就像你上面一样。

答案 1 :(得分:1)

假设您以date格式(而不是string)从数据库收到时间:

变化:

if($gettime >= strtotime($startdate1) && $gettime <= strtotime($enddate1))

为:

if($gettime >= strtotime($startdate1) || $gettime <= strtotime($enddate1))

答案 2 :(得分:1)

确保您正在比较正确类型的数据,时间戳与时间戳,而不是w /字符串等......

$gettime= strtotime("22:00"); // getting this from database

$startdate = strtotime("21:00");
//$startdate1 = date("H:i", $startdate);

$enddate = strtotime("23:00");
//$enddate1 = date("H:i", $enddate);


//this condition i need to run    

if($gettime >= $startdate && $gettime <= $enddate)
{
echo"ok working";
}

答案 3 :(得分:0)

为了比较时间,您应该使用提供的PHP类 DateTime :: diff将返回一个带有时差信息的对象: http://www.php.net/manual/en/datetime.diff.php

答案 4 :(得分:0)

您可以在其网站http://php.net/manual/en/datetime.diff.php

上参阅有关DateTime::diff功能的PHP文档

您也可以浏览此stackoverflow问题 How to calculate the difference between two dates using PHP?