Интеграция разницы в человеческом времени и традиционных временных меток?

Моя цель – использовать man_time_diff только в том случае, если пост был добавлен в текущий день. Когда это не так, я хотел бы вернуться к традиционной временной отметке (второй код). Я не уверен, как это будет достигнуто и вам понадобится помощь. Я предоставил два кода, которые я буду комбинировать ниже.

Код для захвата разницы между временем публикации и текущим временем (т.е. 25 минут назад):

<?php echo human_time_diff( get_the_time('U'), current_time('timestamp') ) . ' ago'; ?> 

Код для указания сообщения был добавлен в X-дату в Х-время:

 <?php the_time('F j, Y'); ?> at <?php the_time('g:i a'); ?> 

Solutions Collecting From Web of "Интеграция разницы в человеческом времени и традиционных временных меток?"

Вы можете получить дату и время создания сообщения и сравнить его с текущей датой / временем.

 global $post; $now = time(); // Current time in seconds since Epoch $post_created = strtotime( $post->post_date ); // post's creation date in seconds since Epoch, so we're comparing apples to apples $one_day_in_seconds = 24*60*60; if ( ( $now - $post_created ) < $one_day_in_seconds ) { echo human_time_diff( get_the_time('U'), current_time('timestamp') ) . ' ago'; } else { the_time( 'F j, Y \a\tg:ia' ); } 

Рекомендации

PHP.net:
time()
strtotime()

Кодекс:
Объект Post (для post_date )

Вам нужно выразить свое условие в коде. Вы заинтересованы в сравнении с текущим днем, который может быть выражен, например, в формате PHP Y z .

Таким образом, ваше состояние будет чем-то вроде (не проверено):

 if ( the_time( 'Y z' ) === date_i18n( 'Y z' ) ) // today else // otherwise