函数原型
date_i18n( string $format, int|bool $timestamp_with_offset = false, bool $gmt = false ): string
函数描述
Retrieves the date in localized format, based on a sum of Unix timestamp and timezone offset in seconds.
是否弃用
未弃用
函数参数
-
$format
string
Required - Format to display the date.
-
$timestamp_with_offset
int|bool
Optional - A sum of Unix timestamp and timezone offset in seconds.
Default:
false -
$gmt
bool
Optional - Whether to use GMT timezone. Only applies if timestamp is not provided.
Default:
false
函数返回值
string The date, translated if locale specifies it.
函数位置
File: wp-includes/functions.php.
函数源码
function date_i18n( $format, $timestamp_with_offset = false, $gmt = false ) {
$timestamp = $timestamp_with_offset;
// If timestamp is omitted it should be current time (summed with offset, unless `$gmt` is true).
if ( ! is_numeric( $timestamp ) ) {
// phpcs:ignore WordPress.DateTime.CurrentTimeTimestamp.Requested
$timestamp = current_time( 'timestamp', $gmt );
}
/*
* This is a legacy implementation quirk that the returned timestamp is also with offset.
* Ideally this function should never be used to produce a timestamp.
*/
if ( 'U' === $format ) {
$date = $timestamp;
} elseif ( $gmt && false === $timestamp_with_offset ) { // Current time in UTC.
$date = wp_date( $format, null, new DateTimeZone( 'UTC' ) );
} elseif ( false === $timestamp_with_offset ) { // Current time in site's timezone.
$date = wp_date( $format );
} else {
/*
* Timestamp with offset is typically produced by a UTC `strtotime()` call on an input without timezone.
* This is the best attempt to reverse that operation into a local time to use.
*/
$local_time = gmdate( 'Y-m-d H:i:s', $timestamp );
$timezone = wp_timezone();
$datetime = date_create( $local_time, $timezone );
$date = wp_date( $format, $datetime->getTimestamp(), $timezone );
}
/**
* Filters the date formatted based on the locale.
*
* @since 2.8.0
*
* @param string $date Formatted date string.
* @param string $format Format to display the date.
* @param int $timestamp A sum of Unix timestamp and timezone offset in seconds.
* Might be without offset if input omitted timestamp but requested GMT.
* @param bool $gmt Whether to use GMT timezone. Only applies if timestamp was not provided.
* Default false.
*/
$date = apply_filters( 'date_i18n', $date, $format, $timestamp, $gmt );
return $date;
}
源码链接
变更日志
| Version | Description |
|---|---|
| 5.3.0 | Converted into a wrapper for wp_date() . |
| 0.71 | Introduced. |

