2010-11-28 2 views
4

Я хочу найти разницу во времени между timestamp mysql и временем, находящимся сейчас в php.время вычитать mysql и php

$timesince = strtotime("now") - $row['DateTime']; 

Это моя попытка сделать это, но она не работает.

Кроме того, на самом деле в идеале я хотел бы выход, чтобы быть в хорошем формате, как: 34 минут назад 2 часа 5 минут назад 4, дни 2 минут назад и т.д.

Действительно, очень признателен за любую помощь на это.

+0

+1 за хороший прием к SO. Кроме того, если вы новичок здесь, не забудьте принять ответ, который вы считаете наиболее подходящим для ваших нужд. – 2010-11-28 17:57:07

ответ

6

strtotime("now") возвращает время в секундах с начала эпохи Unix, то есть целое число. Поле timestamp mysql должно быть YYYY-mm-dd HH: mm: ss. Сначала вам нужно, чтобы они были одного формата. Я бы рекомендовал выбрать поле timestamp mysql как UNIX_TIMESTAMP(DateTime), чтобы он возвращал целое число, а затем вы сможете выполнить свою математику, чтобы получить $timesince в считанные секунды.

Тогда, как сказал @Derek Адэр, проверить PHP Date Object

+0

Извините, что мои комментарии были направлены на вас. Я использовал ваш подход, но цифры, которые я получаю, обширны, т.е. 1290967451, когда это должно быть в 100-х годах. – Sam 2010-11-28 18:09:02

2

Заканчивать руководство для PHP Date Object

просто с помощью date() возвращает текущую дату.

попробовать что-то вроде ...

$curDate = date(); 
$mysqlTimestamp = $row['timestamp']; 

$dif = strtotime($curdate) - strtotime($mysqlTimestamp); 
Смежные вопросы