get_post_datetime( int|WP_Post $post = null, string $field = 'date', string $source = 'local' )
Retrieve post published or modified time as a DateTimeImmutable
object instance.
Description Description
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.
Parameters Parameters
- $post
-
(int|WP_Post) (Optional) WP_Post object or ID. Default is global
$post
object.Default value: null
- $field
-
(string) (Optional) Published or modified time to use from database. Accepts 'date' or 'modified'.
Default value: 'date'
- $source
-
(string) (Optional) Local or UTC time to use from database. Accepts 'local' or 'gmt'.
Default value: 'local'
Return Return
(DateTimeImmutable|false) Time object on success, false on failure.
Source Source
File: wp-includes/general-template.php
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 ); }
Expand full source code Collapse full source code View on Trac
Changelog Changelog
Version | Description |
---|---|
5.3.0 | Introduced. |