2012-05-12 2 views
0

У меня есть два значения времени, как дать нижедаты в PHP

$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($row[1]>$row1[5] && $row[1]<$result) 
{ 
$message=array("status"=>$result); 
} 
else 
{ 
$message=array("status"=>''); 
} 

, но я получаю "status"=>"" его не исправить

я хочу, чтобы получить "status"=>"14:40:00"

пожалуйста, помогите нам для получения правильного из положить

ответ

2

Вы, кажется, не определить $row[1] в любом месте, поэтому он рассматривается как NULL, который как целое является 0, который не может быть больше, чем время, вы дали в $row1[5].

Попробуйте использовать менее неоднозначные имена переменных, это может облегчить выявление таких проблем.

Лично я не понимаю, почему у этого if есть вообще, просто удалите его и блок else, оставив только $message = array("status"=>$result);.

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

Я бы всегда работал со временными метками.

0

Я иду с Panique на его ответ, я хочу также добавить:

Вы объявили две ВАР:

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

Но вы назвали различные элементы массива в если

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

Решите это, и вы должны работать с вашим кодом.