wp_resolve_post_date( string $post_date = '', string $post_date_gmt = '' ): string|false

Uses wp_checkdate to return a valid Gregorian-calendar value for post_date.

Description

If post_date is not provided, this first checks post_date_gmt if provided, then falls back to use the current time.

For back-compat purposes in wp_insert_post, an empty post_date and an invalid post_date_gmt will continue to return ‘1970-01-01 00:00:00’ rather than false.

Parameters

$post_datestringoptional
The date in mysql format (Y-m-d H:i:s).

Default:''

$post_date_gmtstringoptional
The GMT date in mysql format (Y-m-d H:i:s).

Default:''

Return

string|false A valid Gregorian-calendar date string, or false on failure.

Source

function wp_resolve_post_date( $post_date = '', $post_date_gmt = '' ) {	// If the date is empty, set the date to now.	if ( empty( $post_date ) || '0000-00-00 00:00:00' === $post_date ) {	if ( empty( $post_date_gmt ) || '0000-00-00 00:00:00' === $post_date_gmt ) {	$post_date = current_time( 'mysql' );	} else {	$post_date = get_date_from_gmt( $post_date_gmt );	}	}	// Validate the date.	$month = (int) substr( $post_date, 5, 2 );	$day = (int) substr( $post_date, 8, 2 );	$year = (int) substr( $post_date, 0, 4 );	$valid_date = wp_checkdate( $month, $day, $year, $post_date );	if ( ! $valid_date ) {	return false;	}	return $post_date; } 

Changelog

VersionDescription
5.7.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.