Разница во времени между датой и текущим временем? - PullRequest
1 голос
/ 18 октября 2011

Предположим, у меня есть забавный видео-сайт, который показывает забавные видео пользователям.Ниже каждого видео я хочу иметь выражение «5 секунд назад», «31 минуту назад», «Вчера», «2 дня назад» на основе метки времени видео и текущего времени.

Временная метка, которая у меня есть, имеет формат: 2011-10-17 07:08:00.

Я не слишком хорош с датами, но я предполагаю, что мне нужно найти разницу между 2дата / время в секундах, затем определите, будет ли отображаться значение между 0 с и 60 с в секундах, или между 60 с и 3600 с для отображения в минутах, или между 3600 и 3600 х 24 с для отображения в часах, между 3600 x 24 с и 3600 x 24 x 2 с для отображения вчера и т. д.... Я считаю, что я должен использовать strtotime(), но я не могу найти текущее время, так как те решения, которые я нашел, использовали new date(), который, кажется, не работает!

Как я могу это сделать?

Кстати, дополнительный вопрос: когда я вставляю 2011-10-17, 7:08PM EDT в столбец метки времени MySQL, он преобразуется в 2011-10-17 07:08:00, то есть AM.Как я могу сохранить его в правильном AM / PM?

Ответы [ 2 ]

9 голосов
/ 18 октября 2011

Вы можете использовать функции DateTime в php.

$datetime1 = new DateTime('2011-10-17 07:08:00');
$datetime2 = new DateTime();
$interval = $datetime1->diff($datetime2);
echo $interval->format('%R%a days');

Здесь вы можете использовать некоторые операторы if для вывода разницы во времени в другом формате (секунды, минуты,часы, месяц и т. д.) в зависимости от фактической разницы во времени!Форматы для вывода: здесь

2 голосов
/ 18 октября 2011

Вы можете очень легко использовать функции MySQL DATEDIFF и TIMEDIFF . Оба вместе говорят вам точно, сколько времени прошло.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...