Задать вопрос
UDAV99
@UDAV99
web программист, верстальщик

Как посчитать разницу во времени с прибавкой нескольких дней?

Помогите решить проблему.

Есть дата из базы (формат 2015-01-02 00:42:39), к ней нужно прибавлять, допустим, 30 дней, делаю так - strtotime($date.' + 30 Days')
Теперь нужно из текущей даты(реальной в мире) time() вычесть дату из (базы + 30 дней) и показать разницу.
Разница может быть как в минутах, так и днях.

Суть скрипта такая: добавляется запись в базу mysql, эта запись должна быть там ровно 30 дней, потом удаляться (это легко в мискл запросе сделать), но надо еще пользователю показывать сколько дней и часов будет запись.
Если есть вариант сделать по нормальному, подскажите плиз.
  • Вопрос задан
  • 2591 просмотр
Подписаться 1 Оценить Комментировать
Решения вопроса 2
nalomenko
@nalomenko
Руководитель отдела разработок в студии «Lava»
Есть замечательная функция mktime(), которая может правильно (в том числе с учетом перехода на летнее/зимнее время) прибавлять нужное кол-во единиц измерения времени к известной дате и времени. Например, дата на 30 дней больше чем имеющаяся:
$newtime = mktime($hour, $minute, $second, $month, $day + 30, $year);


Ну и вычесть дату из time() можно этим же образом.

К тому же в Вашем распоряжении есть класс DateTime(), у которого есть конструктор, в который можно передать строку таймштампа, как исходная строка даты у Вас, после чего извлечь из него юниксовый timestamp с помощью метода getTimestamp().

$timeObj = new DateTime("2015-01-02 00:42:39");
$time = $timeObj.getTimestamp();
$time_now = time();
$difference = $time_now - $time;
Ответ написан
Комментировать
@Nc_Soft
php.net/manual/ru/datetime.diff.php
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@reedwalter24
Ответ написан
Комментировать
можна так date('Y-m-d H:i:s', mktime(date('H'), date('i'), date('s'), date('m'), date('H')+30, date('Y')))
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы