Получение Времени Публикации Поста в WordPress

# Получение Времени Публикации Поста в WordPress

Функция get_post_timestamp() в WordPress позволяет извлекать время публикации или изменения поста в формате Unix timestamp. Unix timestamp — это количество секунд, прошедших с 1 января 1970 года.

### Важно знать

Эта функция возвращает настоящий Unix timestamp, а не учитывает разницу во времени, как это делали старые функции WordPress.

### Возвращаемые значения

Функция возвращает целое число (int) с временной меткой Unix в случае успеха или false в случае ошибки.

### Как использовать

```php
get_post_timestamp( $post, $field );
  • $post (int|WP_Post): ID поста или объект поста. По умолчанию используется глобальный объект $post.
  • $field (string): время публикации или изменения, которое будет извлечено из базы данных. Принимает значения 'date' (для времени публикации) или 'modified' (для времени изменения). По умолчанию используется 'date'.

Примеры

Пример 1: Сравнение различных вариантов получения времени поста

$post = get_post( 31 );
$patt = "%s - %s - %sn";
$mysql_format = 'Y-m-d H:i:s';

echo sprintf( $patt, strtotime( $post->post_date ),         $post->post_date,         'date'         );
echo sprintf( $patt, strtotime( $post->post_date_gmt ),     $post->post_date_gmt,     'date_gmt'     );
echo sprintf( $patt, strtotime( $post->post_modified ),     $post->post_modified,     'modified'     );
echo sprintf( $patt, strtotime( $post->post_modified_gmt ), $post->post_modified_gmt, 'modified_gmt' );

echo "nnget_post_timestamp()nn";

$unix_time     = get_post_timestamp( $post );
$unix_modified = get_post_timestamp( $post, 'modified' );

echo sprintf( $patt, $unix_time,     date( $mysql_format, $unix_time ),     'date'     );
echo sprintf( $patt, $unix_modified, date( $mysql_format, $unix_modified ), 'modified' );

Вывод:

1271013315 - 2010-04-11 19:15:15 - date
1270998915 - 2010-04-11 15:15:15 - date_gmt
1629940365 - 2021-08-26 01:12:45 - modified
1629922365 - 2021-08-25 20:12:45 - modified_gmt

get_post_timestamp()
1270995315 - 2010-04-11 14:15:15 - date
1629922365 - 2021-08-25 20:12:45 - modified

Пример 2: Использование ID поста

$post_id = 31;
$time = get_post_timestamp( $post_id );             // результат: int(1270995315)
$time = get_post_timestamp( $post_id, 'modified' ); // результат: int(1629922365)

// Также можно передать объект поста:

$post = get_post( $post_id );
$time = get_post_timestamp( $post );             // результат: int(1270995315)
$time = get_post_timestamp( $post, 'modified' ); // результат: int(1629922365)

Как работает функция

Вот как выглядит код функции get_post_timestamp():

function get_post_timestamp( $post = null, $field = 'date' ) {
    $datetime = get_post_datetime( $post, $field );

    if ( false === $datetime ) {
        return false;
    }

    return $datetime->getTimestamp();
}

Связанные функции

  • comment_date() — Возвращает дату комментария
  • current_time() — Возвращает текущее время по вашему временному поясу
  • get_post_time() — Получает время публикации поста
  • wp_timezone() — Возвращает временную зону WordPress

Эти функции помогут вам работать с датами и временем в WordPress более эффективно.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *