On this page
get_post_datetime( int|WP_Post $post = null, string $field = 'date', string $source = 'local' ): DateTimeImmutable|false
Retrieves post published or modified time as a DateTimeImmutable object instance.
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
$postint|WP_Post Optional-
Post ID or post object. Default is global
$postobject.Default:
null $fieldstring Optional-
Published or modified time to use from database. Accepts
'date'or'modified'.
Default'date'.Default:
'date' $sourcestring Optional-
Local or UTC time to use from database. Accepts
'local'or'gmt'.
Default'local'.Default:
'local'
Return
DateTimeImmutable|false Time object on success, false on failure.
Source
File: wp-includes/general-template.php. View all references
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 );
}
Related
Uses
| Uses | Description |
|---|---|
| wp_timezone() wp-includes/functions.php | Retrieves the timezone of the site as a |
| get_post() wp-includes/post.php | Retrieves post data given a post ID or post object. |
Used By
| Used By | Description |
|---|---|
| get_post_timestamp() wp-includes/general-template.php | Retrieves post published or modified time as a Unix timestamp. |
| get_post_time() wp-includes/general-template.php | Retrieves the time at which the post was written. |
| get_post_modified_time() wp-includes/general-template.php | Retrieves the time at which the post was last modified. |
Changelog
| Version | Description |
|---|---|
| 5.3.0 | Introduced. |
© 2003–2022 WordPress Foundation
Licensed under the GNU GPLv2+ License.
https://developer.wordpress.org/reference/functions/get_post_datetime