2013-05-11 4 views
0

Я просмотрел несколько сообщений об этом, но я все еще немного запутался в том, как это работает.datetime разница с php

Я хочу сравнить 2 раза. В первый раз это время NOW, а второе время - дата-время, поступающее из базы данных. Я могу получить разницу в днях, месяцах и годах, но когда я пытаюсь получить минуты и секунды, цифры не кажутся правильными.

Вот мой код для получения времени в минутах и ​​секундах:

$date1 = date('Y-m-d H:i:s'); 
$date2 = $blah['datetime']; //the variable here is in dateTime format coming from the database 
$diff = abs(strtotime($date2) - strtotime($date1)); //Does this give the seconds? 
$mins = floor($diff/60); 

До сих пор минут это что-то вроде 560 вернувшихся, хотя я добавил, что ряд (в базе данных в таблицу) минуту назад , Возможно, я что-то недопонимаю, или что-то не хватает. Дайте мне знать, если вы хотите, чтобы я что-то разъяснил. Благодаря!

+0

Покажите нам значения '$ date1' и' $ date2'. – deceze

+0

И $ date1 и $ date2 имеют ту же дату формата ('Y-m-d H: i: s'). $ date1 - это дата сейчас (текущее время), а $ date2 - тот же формат даты, который был сохранен в прошлом. Вам нужно знать точную дату и время? – tickerll

+0

Тем не менее, даты выглядят следующим образом: $ date1 = 2013-05-11 21:55:19 $ date2 = 2013-05-11 12:49:12 – tickerll

ответ

0

Этот расчет довольно прост с классами PHP DateTime и DateInterval.

$date1 = new \DateTime(); 
$date2 = \DateTime::createFromFormat('Y-m-d H:i:s', $blah['datetime']); 
$diff = $date1->diff($date2); // $diff is an Instance of DateInterval 

$mins = ($diff->days * 60 * 24) + ($diff->h * 60) + $diff->i; 
Смежные вопросы