php сложение времени

397
31 мая 2017, 06:52

Подскажите, как правильно складывать значения времени? Время получаю в формате 04:00, перевожу его в таймстамп, затем делаю сложение. Но результат оставляет желать лучшего - вместо 08:00 получаю 05:00. Собственно вот код:

$th2 = strtotime(date('Y-m-d')."04:00");
$th3 = strtotime(date('Y-m-d')."04:00");
print_r(date("h-i", $th2+$th3));
Answer 1

Хотя работа с встроенным классом DateTime более гибкая и удобная.

Решение:

$date = strtotime('04:00') + strtotime('04:00') - strtotime("00:00:00");
echo date('H:i',$date);
Answer 2

Можно к некоторой полуночи прибавлять временные интервалы:

$d = new DateTime("00:00");
echo $d->format('Y-m-d H:i')."\n";
$interval1 = new DateInterval("PT4H");
$interval2 = new DateInterval("PT5H");
// Альтернативный формат:
// $interval1 = DateInterval::createFromDateString("4 hours + 0 min");
// $interval2 = DateInterval::createFromDateString("5 hours + 0 min");    
$d->add($interval1);
$d->add($interval2);
echo $d->format('H:i')."\n";  

Вывод:

2017-05-30 00:00:00
09:00

Можно пойти чуть дальше и вычитать оригинальную дату, чтобы получить только сумму интервалов:

$d = new DateTime("00:00");
$save = clone $d;
$interval1 = DateInterval::createFromDateString("14 hours + 20 min");
$interval2 = DateInterval::createFromDateString("15 hours + 0 min");
$d->add($interval1);
$d->add($interval2);
echo $save->diff($d)->format('%a д. %H:%I')."\n";

Вывод:

1 д. 05:20
READ ALSO
Проверка логина

Проверка логина

Скажите пожалуйста, такая проверка логина хорошая или плохаяИли дайте пожалуйста лучший пример

312
Счетчик просмотров товаров php

Счетчик просмотров товаров php

Как сделать счетчик просмотра товаров, архитектура mvc , нужна логика счетчика для детальной страницы товара

341
Чтение и вывод информации из 100 файлов

Чтение и вывод информации из 100 файлов

Свой вариант, вопрос остался:

296
Интринсик intrinsic(_BitScanForward)

Интринсик intrinsic(_BitScanForward)

Как использовать интринсик

461