Unix отметка времени для комментариев

Есть ли функция / фрагмент кода для получения отметки времени unix комментария в сообщении? Функция WordPress по умолчанию comment_time(); возвращает время сообщения в 12-часовом формате (не полезно).

Solutions Collecting From Web of "Unix отметка времени для комментариев"

Использование:

 global $comment; $timestamp = strtotime("{$comment->comment_date_gmt} GMT"); 

С уважением.

Я знаю, что вы уже выбрали ответ, но только примечание, основанное на ваших комментариях: в WordPress есть функция human_time_diff() . http://codex.wordpress.org/Function_Reference/human_time_diff

Это заслуживает нового ответа, потому что ответ прост.

WordPress написан на языке программирования PHP. Функции форматирования даты в WordPress используют встроенные функции форматирования даты PHP.

Эта цитата может быть найдена в wordpress codex здесь

Эта информация очень важна, потому что PHP имеет следующий тег форматирования 'U' . Полный список можно найти здесь .

Другими словами. Ответ на этот вопрос: comment_time('U');

Возможно, это было не так в 2011 году , но это в 2016 году .

Не знаете, как и почему вам нужна отметка времени unix.

Вы можете получить временную марку ISO 8601, используя

 <?php the_time('c'); ?> 

Это выведет что-то вроде этого

 2011-01-22T12:01:09+00:00 

Это может быть не временная метка unix, но по крайней мере вы можете использовать ее для преобразования в временную метку unix с php, если вам нужно.

Вот PHP-функция для преобразования в временную метку UNIX. Взято из Google Calendar для плагина simplepie.

  function tstamptotime($tstamp) { // converts ISODATE to unix date // 1984-09-01T14:21:31Z sscanf($tstamp,"%u-%u-%uT%u:%u:%uZ",$year,$month,$day,$hour,$min,$sec); $newtstamp=mktime($hour,$min,$sec,$month,$day,$year); return $newtstamp; } в  function tstamptotime($tstamp) { // converts ISODATE to unix date // 1984-09-01T14:21:31Z sscanf($tstamp,"%u-%u-%uT%u:%u:%uZ",$year,$month,$day,$hour,$min,$sec); $newtstamp=mktime($hour,$min,$sec,$month,$day,$year); return $newtstamp; } 

Обновить

Если вы хотите получить относительное время для комментариев, есть более простой способ, чем пытаться выработать отметку времени в unix и делать все эти преобразования.

Вот две функции, которые я использую в рамке темы, которую я создаю, которая будет выполнять эту работу за вас.

Сначала добавьте это в функции темы.

 function theme_time_passed ($t1, $t2) { if($t1 > $t2) : $time1 = $t2; $time2 = $t1; else : $time1 = $t1; $time2 = $t2; endif; $diff = array( 'years' => 0, 'months' => 0, 'weeks' => 0, 'days' => 0, 'hours' => 0, 'minutes' => 0, 'seconds' =>0 ); $units = array('years','months','weeks','days','hours','minutes','seconds'); foreach($units as $unit) : while(true) : $next = strtotime("+1 $unit", $time1); if($next < $time2) : $time1 = $next; $diff[$unit]++; else : break; endif; endwhile; endforeach; return($diff); } function theme_time_since($thetime) { $diff = theme_time_passed($thetime, strtotime('now')); $units = 0; $time_since = array(); foreach($diff as $unit => $value) : if($value != 0 && $units < 2) : if($value === 1) : $unit = substr($unit, 0, -1); #removes the plural "s" endif; $time_since[]= $value . ' ' .$unit; ++$units; endif; endforeach; $time_since = implode(', ',$time_since); $time_since .= ' ago'; $date = $time_since; return $date; 

}

Теперь вы можете получить относительное время для любого формата даты в worpdress .. либо сообщения, либо комментарии.

Для комментариев вы можете сделать что-то подобное в коде комментариев.

 <?php echo theme_time_since(get_comment_time('U')) ?> 

Или для даты публикации, используйте это внутри цикла.

 <?php echo theme_time_since(get_the_time('U')) ?> 

Из того, что я понимаю, вы хотите сделать, это сработает. Он выводит дату и время как количество дней, часов и т. Д. Относительно сегодняшнего дня.

например:

45 секунд назад, или 1 день 1 час назад .. и т. Д.