在PHP中的日期时间比较

时间:2012-05-12 18:28:03

标签: php datetime time

我有两个时间值,如下所示

$row2[0]=00:40:00;
$row1[5]=14:00:00;
$time=14:33:00
$time=$row[1];

我正在组合$ row2 [0],$ row1 [5],如下所示

$secs = strtotime($row2[0])-strtotime("00:00:00");
$result = date("H:i:s",strtotime($row1[5])+$secs);

$result=14:40:00

我使用if条件如图所示

if($row[1]>$row1[5] && $row[1]<$result)
{
$message=array("status"=>$result);
}
else
{
$message=array("status"=>'');
}

但是我的"status"=>""不正确

我想获得"status"=>"14:40:00"

请帮助我们获得正确的输出

3 个答案:

答案 0 :(得分:2)

您似乎无法在任何地方定义$row[1],因此将其视为NULL,整数为0,不能超过您提供的时间$row1[5]

尝试使用不那么模糊的变量名称,这样可以更容易地发现这样的问题。

就我个人而言,我不明白为什么if完全存在,只需删除它和else块,只留下$message = array("status"=>$result);

答案 1 :(得分:1)

这是真正的oder伪代码吗? 因为

$row2[0]=00:40:00;

不是真正的PHP代码!

$row2[0] = 00:40:00; // $row2[0] would be 0, because you are assigning an integer
$row2[0] = "00:40:00"; // $row2[0] would be "00:40:00", but as a string (!)

我会一直使用时间戳btw。

答案 2 :(得分:0)

我和Panique一起回答,我想补充一下:

你宣布了两个变种:

$row2[0]=00:40:00;
$row1[5]=14:00:00;

但你在if

中调用了不同的数组元素
if($row[1]>$row1[5] && $row[1]<$result)

解决这个问题,您应该让代码正常工作。