wpseek.com
A WordPress-centric search engine for devs and theme authors



wp_resolve_post_date › WordPress Function

Since5.7.0
Deprecatedn/a
wp_resolve_post_date ( $post_date = '', $post_date_gmt = '' )
Parameters: (2)
  • (string) $post_date The date in mysql format (`Y-m-d H:i:s`).
    Required: No
    Default: (empty)
  • (string) $post_date_gmt The GMT date in mysql format (`Y-m-d H:i:s`).
    Required: No
    Default: (empty)
Returns:
  • (string|false) A valid Gregorian-calendar date string, or false on failure.
Defined at:
Codex:

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

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.


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