如果您没有将日期传递给wp_insert_post()
, get_gmt_from_date()
被调用。看看这个函数的内容:
function get_gmt_from_date($string, $format = \'Y-m-d H:i:s\') {
preg_match(\'#([0-9]{1,4})-([0-9]{1,2})-([0-9]{1,2}) ([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})#\', $string, $matches);
if ( ! $matches )
return date( $format, 0 );
$tz = get_option(\'timezone_string\');
if ( $tz ) {
date_default_timezone_set( $tz );
$datetime = date_create( $string );
if ( ! $datetime )
return date( $format, 0 );
$datetime->setTimezone( new DateTimeZone(\'UTC\') );
$offset = $datetime->getOffset();
$datetime->modify( \'+\' . $offset / HOUR_IN_SECONDS . \' hours\');
$string_gmt = gmdate($format, $datetime->format(\'U\'));
date_default_timezone_set(\'UTC\');
} else {
$string_time = gmmktime($matches[4], $matches[5], $matches[6], $matches[2], $matches[3], $matches[1]);
$string_gmt = gmdate($format, $string_time - get_option(\'gmt_offset\') * HOUR_IN_SECONDS);
}
return $string_gmt;
}
它根据选项中的设置更改时区
timezone_string
. 所以请转到
wp-admin/options-general.php
并设置适当的时区。或为每个参数传递有效日期
post_date
.