В принципе, все это время меня расстраивает, я новичок в программировании, поэтому я извиняюсь, если задаю глупый вопрос.
У меня есть MySQL time (), хранящийся в моей базе данных. Я хочу добавить это время в текущее время, чтобы установить целевое время.
$ duration – 06:00:00. (Время MySQL)
$length = strtotime($duration); $timestart = time(); $target = $length + time(); // merely to check if im getting correct values. echo "</br>duration: ".date('G:i:s', $length)."<br/>"; echo "current time:".date('G:i:s', $timestart)."<br/>"; echo "target time:".date('G:i:s', $target)."<br/>";
В настоящее время я получаю это (не 6 часов):
продолжительность: 6:00:00
текущее время: 15: 51: 44
целевое время: 19: 51: 44
Может кто-нибудь, пожалуйста, объясните это мне.
Большое спасибо,
strtotime
преобразует его в strtotime
времени unix. Он НЕ представляет шесть часов. Сегодня это 6AM. Вы должны работать с секундами:
$duration = '06:00:00'; $duration_array = explode(':', $duration); $length = ((int)$duration_array[0] * 3600) + ((int)$duration_array[1] * 60) + (int)$duration_array[2]; $target = $length + time();
Я не слишком хорошо знаком с mySql, но, возможно, вы можете попробовать
$target = strtotime($length) + time();
Strtotime распространяет там дату, что-то вроде «6PM сегодня», вместо 6 часов, как вы планируете. Самый простой способ сделать это – запустить
time() + (6 * 3600);
Где 6 часов, а 3600 – количество секунд в каждом часе.