wpseek.com
WordPress开发者和主题制作者的搜索引擎



get_post_datetime › WordPress Function

Since5.3.0
已弃用n/a
get_post_datetime ( $post = null, $field = 'date', $source = 'local' )
参数: (3)
  • (int|WP_Post) $post Optional. Post ID or post object. Default is global `$post` object.
    Required: No
    默认: null
  • (string) $field Optional. Published or modified time to use from database. Accepts 'date' or 'modified'. Default 'date'.
    Required: No
    默认: 'date'
  • (string) $source Optional. Local or UTC time to use from database. Accepts 'local' or 'gmt'. Default 'local'.
    Required: No
    默认: 'local'
返回:
  • (DateTimeImmutable|false) Time object on success, false on failure.
定义在:
文档:

Retrieves post published or modified time as a `DateTimeImmutable` object instance.

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.


源码

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 );
}