WordPress как на ладони
wordpress jino

current_time() WP 1.0.1

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

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

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

Функция учитывает время сервера установленное в date.timezone setting и переписывает его в момент инициализации системы, используя date_default_timezone_set('UTC') в файле wp-settings.php. Такой подход позволяет получать как реальное UTC время, так и измененное локальное время сайта.

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

В отличии от time(), всегда возвращает строку, поэтому может пригодится преобразование в число: (int) current_time('timestamp').

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

Хуков нет.

Возвращает

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

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

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

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

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

По молчанию: 0

Примеры

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

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

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

#2. Все по порядку.

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

echo "current_time('mysql') - ". current_time('mysql') .' - время сайта (SQL формат).<br />';

echo "current_time('mysql',1) - ". current_time('mysql',1) .' -  временная зона GMT (SQL формат).<br />';

echo "current_time('timestamp') - ". current_time('timestamp') .' - время сайта (Unix формат). <br />';

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

то получим, нечто подобное:

current_time('mysql') - 2012-04-30 21:48:07 - время сервера (SQL формат).
current_time('mysql',1) - 2012-04-30 17:48:07 -  временная зона GMT (SQL формат).
current_time('timestamp') - 1335822487 - время сервера (Unix формат). 
current_time('timestamp',1) - 1335808087 - временная зона GMT (Unix формат).

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

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

Код current time: wp-includes/functions.php VER 4.9.1

<?php
function current_time( $type, $gmt = 0 ) {
	switch ( $type ) {
		case 'mysql':
			return ( $gmt ) ? gmdate( 'Y-m-d H:i:s' ) : gmdate( 'Y-m-d H:i:s', ( time() + ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS ) ) );
		case 'timestamp':
			return ( $gmt ) ? time() : time() + ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS );
		default:
			return ( $gmt ) ? date( $type ) : date( $type, time() + ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS ) );
	}
}

Cвязанные функции

Из метки: date time (дата время)

Еще из раздела: Дата/время

current_time 3 комментария
  • Борис cайт: potencia-100.ru

    Снимаю шляпу перед хозяином блога!!! Вот уже какой запрос по функциям Вордпресса и везде блог в Яндексе на первом месте! Абсолютный респект! И главное написано четко, без воды и исчерпывающе!!!

    5
    Ответить4 года назад #
  • Александр Алексеенко cайт: bloggerschool.org

    Одно время потерял, но опять добавил в закладки ваш сайт. Очень доступно и по существу! Спасибо!

    1
    Ответить1.1 года назад #
  • A8

    Забавно, но 19 января 2038 значение (int) current_time( 'timestamp' ) выйдет за пределы диапазона integer для 32-битных систем, и для избежания ошибок нужно использовать (float) current_time( 'timestamp' )

    1
    Ответитьмесяц назад #

Здравствуйте, !

Ваш комментарий
Предпросмотр