Вычитай две даты и получи секунды

0

Я попытался вычитать два времени, чтобы получить результат за считанные секунды:

$created = "2015-01-16 07:26:55";
$newdate_created = date('Y-m-d H:i:s', strtotime('+2 month', strtotime($created)));
$now = date('Y-m-d h:i:s');
$interval = date_diff($now, $newdate_created);
$seconds = $interval * 60 * 60 * 12 ;

Но я получаю эту ошибку:

date_diff() ожидает, что параметр 1 будет DateTime, я не знаю, где проблема для получения этой работы

Я смотрю вывод таким образом:

5259000   // something like that by seconds
  • 1
    date() не создает объект DateTime, который требуется для использования date_diff()
  • 0
    Да, если вы будете придерживаться этого кода, это должно быть $now = new DateTime(); и $newdate_created = new DateTime('+2 month'); , Тогда ваш $interval будет объектом DateInterval .
Теги:
datetime

1 ответ

3
Лучший ответ

Очень расточительный код. Нет никакого смысла форматировать временные метки в строках, просто чтобы вернуть их обратно в формат timestamp:

$newdate_created = strtotime('+2 month', strtotime($created));
$now = time();

$diff_in_seconds = $now - $newdate_created;
  • 0
    Это действительно настолько просто
  • 0
    спасибо, хорошие работы

Ещё вопросы

Сообщество Overcoder
Наверх
Меню