get_post_datetime

函式
get_post_datetime ( $post = null, $field = 'date', $source = 'local' )
引數
  • (int|WP_Post) $post Optional. Post ID or post object. Default is global `$post` object.
    Required:
    Default: null
  • (string) $field Optional. Published or modified time to use from database. Accepts 'date' or 'modified'. Default 'date'.
    Required:
    Default: 'date'
  • (string) $source Optional. Local or UTC time to use from database. Accepts 'local' or 'gmt'. Default 'local'.
    Required:
    Default: 'local'
返回值
  • (DateTimeImmutable|false) Time object on success, false on failure.
定義位置
相關方法
get_post_timeget_post_modified_timeget_post_statiget_postdataget_post_states
引入
5.3.0
棄用
-

get_post_datetime函式用於以指定格式檢索給定文章的日期和時間。它有兩個引數:第一個引數是要使用的格式,第二個引數是文章的ID。

以”DateTimeImmutable”物件例項檢索文章釋出或修改時間。

該物件將被設定為WordPress設定中的時區。

出於傳統的原因,這個函式允許選擇從資料庫中的本地時間或UTC時間進行例項化。通常情況下,這應該不會對結果產生任何影響。然而,資料庫中的值可能會不同步,通常是因為時區設定的變化。該引數確保在這種情況下能夠重現向後相容的行為。

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
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 );
}
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 ); }
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 );
}

常見問題

FAQs
檢視更多 >