current_time() WP 1.0.1
Возвращает текущее время сайта, учитывается настройка временной зоны на сайте (timezone). В каком формате вернуть результат можно указать произвольно. mysql: YYYY-MM-DD HH:MM:SS, unix: 1335820033, произвольный формат: d. M. Y.
Можно использовать второй параметр, чтобы получить время в 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').
С версии 5.3 работает на основе PHP классов: DateTime{} и DateTimeZone{}.
Хуков нет.
Возвращает
Строку времени в указанном формате.
Использование
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 (с учетом временной зоны сайта)
Список изменений
С версии 1.0.0 | Введена. |
Код current_time() current time WP 5.6.2
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) ( 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 );
}