我有下面的代码,我试图比较两个get,以便进入if语句,但我的is代码有问题。
如果时间在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";
}
请帮我处理
感谢
确保您的通信是正确的数据类型,带有时间戳的时间戳,而不是字符串等
$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转换为时间对象,然后可以使用>或<就像你上面提到的一样。
假设您以date
格式(而不是string
格式)从DB接收时间:
更改:
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
您还可以讨论这个stackerflow问题如何使用PHP计算两个日期之间的差异