функция since 5.3.0

get_post_datetime()

Проверено на WordPress 6.9, обновлено Источник: WordPress Developer Resources.

Сигнатура

get_post_datetime( int|WP_Post|null $post = null, string $field = 'date', string $source = 'local' ): DateTimeImmutable|false

Описание

Объект будет установлен в часовой пояс из настроек WordPress.
По историческим причинам эта функция позволяет выбрать, создавать экземпляр из локального времени или из времени UTC в базе данных.
Обычно это никак не влияет на результат. Однако значения в базе данных могут рассинхронизироваться, как правило из-за изменения настройки часового пояса. Параметр обеспечивает возможность воспроизвести обратно совместимое поведение в таких случаях.

Оригинал (английский)

The object will be set to the timezone from WordPress settings.

For legacy reasons, this function allows to choose to instantiate from local or UTC time in database.
Normally this should make no difference to the result. However, the values might get out of sync in database, typically because of timezone setting changes. The parameter ensures the ability to reproduce backwards compatible behaviors in such cases.

Параметры

$post int|WP_Post|null необязательный = null
ID записи или объект записи. По умолчанию — глобальный объект $post .
$field string необязательный = 'date'
Время публикации или изменения, используемое из базы данных. Принимает 'date' или 'modified'. Значение по умолчанию 'date'.
$source string необязательный = 'local'
Локальное время или время UTC, используемое из базы данных. Принимает 'local' или 'gmt'. Значение по умолчанию 'local'.

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

DateTimeImmutable|false

Исходный код

wp-includes/general-template.php:2952

function get_post_datetime( $post = null, $field = 'date', $source = 'local' ) {
	$post = get_post( $post );

	if ( ! $post ) {
		return false;
	}

	$wp_timezone = wp_timezone();

	if ( 'gmt' === $source ) {
		$time     = ( 'modified' === $field ) ? $post->post_modified_gmt : $post->post_date_gmt;
		$timezone = new DateTimeZone( 'UTC' );
	} else {
		$time     = ( 'modified' === $field ) ? $post->post_modified : $post->post_date;
		$timezone = $wp_timezone;
	}

	if ( empty( $time ) || '0000-00-00 00:00:00' === $time ) {
		return false;
	}

	$datetime = date_create_immutable_from_format( 'Y-m-d H:i:s', $time, $timezone );

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

	return $datetime->setTimezone( $wp_timezone );
}

История изменений

ВерсияОписание
5.3.0 Introduced.

Что будем искать? Например,Продвижение

Этот сайт использует куки-файлы. Оставаясь на сайте, Вы соглашаетесь на их использование. Для получения дополнительной информации, пожалуйста, ознакомьтесь с политикой в отношении персональных данных.