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时间进行实例化。通常情况下,这应该不会对结果产生任何影响。然而,数据库中的值可能会不同步,通常是因为时区设置的变化。该参数确保在这种情况下能够重现向后兼容的行为。

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
查看更多 >