我有以下代码,我试图比较两个 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);
if ($gettime >= strtotime($startdate1) && $gettime <= strtotime($enddate1)) {
echo "ok working";
}
确保您的数据类型正确,时间戳与时间戳而不是字符串等...
$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";
}
您正在将字符串与日期进行比较。 $gettime 是一个字符串,您正在将它与时间对象进行比较。
您需要通过调用 $gettime = strtotime($gettime) 将 $gettime 转换为时间对象,然后您可以使用 > 或 < like you have above.
进行比较假设您以
date
格式从数据库接收时间(而不是 string
):
改变:
if($gettime >= strtotime($startdate1) && $gettime <= strtotime($enddate1))
至:
if($gettime >= strtotime($startdate1) || $gettime <= strtotime($enddate1))
为了比较时间,您应该使用提供的 PHP 类 DateTime::diff 将返回一个带有时差信息的对象: http://www.php.net/manual/en/datetime.diff.php
您可以在他们的网站上参考有关
DateTime::diff
函数的 PHP 文档 http://php.net/manual/en/datetime.diff.php
您也可以浏览一下这个 stackoverflow 问题 如何使用 PHP 计算两个日期之间的差异?