Новый формат даты от Twitter

Итак, я внедряю твиттер через виджет твиттера в тему WordPress. Я хочу датировать твиты иначе, чем форматы wordpress и виджетов. Я хочу следить за форматом даты в твиттере: 5 часов, 23 часа или 3 марта. Все, что я смог найти, это как сделать «создано _ назад», «о _ старом» и т. д. Я просто хочу использовать xh если в течение 24 часов, в противном случае используйте аббревиатуру дня и месяца. Я действительно не знаю php или слишком много js, поэтому любая помощь очень и очень ценится.


person user1298207    schedule 28.03.2012    source источник
comment
Вы хотите показать продолжительность времени типа 02 hours, 1 days назад?   -  person Shiplu Mokaddim    schedule 28.03.2012


Ответы (1)


Используйте PHP DateTime и DateInterval,

$dt1 = new DateTime("2012-02-10 10:32:22");
$dt2 = new DateTime();
$diff = $dt2->diff($dt1);
echo $diff->format("%Y years, %m months, %d days, %H hours, %I minuts, %s seconds ago");
/// 00 years, 1 months, 18 days, 08 hours, 26 minuts, 51 seconds ago

Если вы не хотите отображать 00 years, 00 months и т. д., проверьте, что свойства DateTime::y, DateTime::m и т. д. равны 0. Если ноль, не повторяйте их. Например,

$format = "";
if ($diff->y > 0){
    $format.="%Y years,";
}
if ($diff->m > 0){
    $format.="%m months,";
}
...
// more conditions for hours, minutes, seconds

// echo the format
echo $diff->format($format);

Интересные ссылки,

  1. DateTime::__construct()
  2. DateTime::diff()
  3. DateInterval::format()
person Shiplu Mokaddim    schedule 28.03.2012
comment
Думаю, мне больше интересно, как я могу переключиться с отображения минут... на часы, а затем на дату. - person user1298207; 28.03.2012
comment
@ user1298207, смотрите, я обновил ответ. Это вопрос логики. - person Shiplu Mokaddim; 28.03.2012
comment
Спасибо, у меня был DateInterval, но я не видел двух других - person user1298207; 28.03.2012