0

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

$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"

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

4

3 回答 3

2

您似乎没有在$row[1]任何地方定义,因此它被视为NULL,它作为一个整数是0,它不能大于您在 中给出的时间$row1[5]

尝试使用不那么模棱两可的变量名,这样可能更容易发现此类问题。

就我个人而言,我根本不明白为什么if会出现这种情况,只需将其和else块删除即可,仅留下$message = array("status"=>$result);.

于 2012-05-12T18:36:56.973 回答
1

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

$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 (!)

顺便说一句,我总是会使用时间戳。

于 2012-05-12T18:36:26.680 回答
0

我同意 Panique 的回答,我还想补充一下:

你声明了两个变量:

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

但是您在 if 中调用了不同的数组元素

if($row[1]>$row1[5] && $row[1]<$result)

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

于 2012-05-12T18:40:42.117 回答