current_time()WP 1.0.0

Возвращает текущее время сайта, учитывается настройка временной зоны на сайте (timezone). В каком формате вернуть результат можно указать произвольно. mysql: YYYY-MM-DD HH:MM:SS, unix: 1335820033, произвольный формат: d. M. Y.

Можно использовать второй параметр, чтобы получить время в GMT/UTC, а не в виде локального времени сайта.

Локальное время будет получено в соответствии с установленными глобальными настройками сайта о временной зоне (опция gmt_offset).

Используйте current_time('timestamp') вместо time(), когда нужно получить время сайта с учетом временной зоны.

С версии 5.3 работает на основе PHP классов: DateTime{} и DateTimeZone{}.

Дефолтное время сервера устанавливается в ini опции date.timezone, а также может быть установлено функцией date_default_timezone_set(), которая имеет больший приоритет над ini опцией.

WP устанавливает дефолтную временную зону сервера в UTC на очень раннем этапе загрузки ядра в файле wp-settings.php:

date_default_timezone_set( 'UTC' );

Чтобы узнать текущую таймзону сервера можно использовать date_default_timezone_get():

echo date_default_timezone_get(); // Europe/Moscow

Читайте также: Date/Time в WordPress.

1 раз — 0.000011 сек (очень быстро) | 50000 раз — 0.03 сек (скорость света) | PHP 7.1.2, WP 4.7.3

Хуков нет.

Возвращает

int|Строку. Строку времени в указанном формате.

Использование

current_time( $type, $gmt );
$type(строка) (обязательный)
Формат, в котором функция вернет время. Может быть: mysql, timestamp или произвольный формат вида: Y-m-d H:i:s. Все варианты форматов.
$gmt(число)

Временная зона (GMT, локальное) возвращаемого времени. Может быть:

  • 1 - время будет возвращено в GMT зоне.
  • 0 - вернет время сайта, установленное в основных настройках.

По умолчанию: 0 (время сайта)

Примеры

1

#1 Демо

Если мы используем этот код где-нибудь в шаблоне:

echo current_time( 'mysql' ); // 2012-04-30 21:48:07 - время сервера (SQL формат).

echo current_time( 'mysql', 1 ); // 2012-04-30 17:48:07 -  время в зоне GMT/UTC (SQL формат).

echo current_time( 'timestamp' ); // 1335822487 - время сервера (Unix формат).

echo current_time( 'timestamp', 1 ); // 1335808087 - время в зоне GMT/UTC (Unix формат).

var_dump( current_time( 'timestamp' ) ); // int(1625452800)

Если время сайта отличается от UTC, то timestamp вернет метку времени + установленную в настройках сдвижку по временной зоне. Т.е. результат будет отличаться от того что возвращает функция time():

var_dump( current_time( 'timestamp' ) ); //> int(1711046478)
var_dump( time() );                      //> int(1711028478)
0

#2 Получим текущее время и разобьем его на составляющие (дни, часы, минуты):

$blogtime = current_time('mysql'); // вернет: 2005-08-05 10:41:13
list( $year, $month, $day, $hour, $minute, $second ) = preg_split( '([^0-9])', $blogtime );

// Теперь у нас переменные:
// $year - текущий год
// $month - текущий месяц
// т.д.
0

#3 Выведем текущую дату и время сайта в нужном формате

echo current_time('d m Y H:i'); //> 17 07 2016 15:51 (с учетом временной зоны сайта)

Список изменений

С версии 1.0.0 Введена.
С версии 5.3.0 Now returns an integer if $type is 'U'. Previously a string was returned.

Код current_time() WP 6.7.1

function current_time( $type, $gmt = 0 ) {
	// Don't use non-GMT timestamp, unless you know the difference and really need to.
	if ( 'timestamp' === $type || 'U' === $type ) {
		return $gmt ? time() : time() + (int) ( (float) get_option( 'gmt_offset' ) * HOUR_IN_SECONDS );
	}

	if ( 'mysql' === $type ) {
		$type = 'Y-m-d H:i:s';
	}

	$timezone = $gmt ? new DateTimeZone( 'UTC' ) : wp_timezone();
	$datetime = new DateTime( 'now', $timezone );

	return $datetime->format( $type );
}