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

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 (час сайту)

Приклади

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 - поточний місяць
/ / Т.д.
0

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

Якщо ми використовуємо цей код десь у шаблоні:

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)
0

#3 Виведемо поточну дату та час сайту у потрібному форматі

echo current_time('dm YH:i'); //> 17 07 2016 15:51 (з урахуванням тимчасової зони сайту)

список змін

З версії 1.0.0Введено.
З версії 5.3.0Now returns an integer if $type is ‘U’ . Спочатку string був відновлений.

Код current_time() WP 6.0.2

function current_time( $type, $gmt = 0 ) {
	// Не можна використовувати не-GMT timestamp, незмінно ви знаєте відмінності і реально необхідно.
	if ( 'timestamp' === $type || 'U' === $type ) {
		return $gmt ? time() : time() + (int) ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS );
	}

	if ( 'mysql' === $type ) {
		$type = 'Ymd H:i:s';
	}

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

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

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *