IntlCalendar::getSkippedWallTimeOption

(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)

IntlCalendar::getSkippedWallTimeOptionПолучает поведение для обработки пропущенного времени процессора

Описание

Объектно-ориентированный стиль

public IntlCalendar::getSkippedWallTimeOption(): int

Процедурный стиль

intlcal_get_skipped_wall_time_option(IntlCalendar $calendar): int

Получает текущую стратегию для работы со временем процессора, которое пропускается всякий раз, когда часы переводятся во время переходов времени на летнее время. Значение по умолчанию - IntlCalendar::WALLTIME_LAST.

Чтобы эта опция имела какой-либо эффект, календарь должен быть в мягком режиме, в противном случае попытка установить несуществующее время вызовет ошибку.

Для этой функции требуется ICU 4.9 или новее.

Список параметров

calendar

Экземпляр класса IntlCalendar.

Возвращаемые значения

Одна из констант: IntlCalendar::WALLTIME_FIRST, IntlCalendar::WALLTIME_LAST или IntlCalendar::WALLTIME_NEXT_VALID.

Примеры

Пример #1 Пример использования IntlCalendar::getSkippedWallTimeOption()

<?php
ini_set
('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'en_US');
ini_set('intl.error_level', E_WARNING);

// 31 марта в 01:00 часы переводятся на 1 час вперёд и с GMT+00 на GMT+01.
$cal = new IntlGregorianCalendar(2013, 2 /* March */, 31, 1, 30);

var_dump(
$cal->isLenient(), // true
$cal->getSkippedWalltimeOption() // 0 WALLTIME_LAST
);

$formatter = IntlDateFormatter::create(
NULL,
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'UTC'
);
var_dump($formatter->format($cal->getTime() / 1000));

$cal->setSkippedWallTimeOption(IntlCalendar::WALLTIME_FIRST);
var_dump($cal->getSkippedWalltimeOption()); // 1 WALLTIME_FIRST
$cal->set(IntlCalendar::FIELD_HOUR_OF_DAY, 1);

var_dump($formatter->format($cal->getTime() / 1000));

$cal->setSkippedWallTimeOption(IntlCalendar::WALLTIME_NEXT_VALID);
var_dump($cal->getSkippedWalltimeOption()); // 2 WALLTIME_NEXT_VALID
$cal->set(IntlCalendar::FIELD_HOUR_OF_DAY, 1);

var_dump($formatter->format($cal->getTime() / 1000));

Результат выполнения приведённого примера:

bool(true)
int(0)
string(40) "Sunday, March 31, 2013 at 1:30:00 AM GMT"
int(1)
string(41) "Sunday, March 31, 2013 at 12:30:00 AM GMT"
int(2)
string(40) "Sunday, March 31, 2013 at 1:00:00 AM GMT"

Смотрите также

  • IntlCalendar::getRepeatedWallTimeOption() - Получает поведение для обработки повторяющегося времени процессора
  • IntlCalendar::setSkippedWallTimeOption() - Устанавливает поведение для обработки пропущенного времени процессора при положительных переходах смещения часового пояса
  • IntlCalendar::setRepeatedWallTimeOption() - Устанавливает поведение для обработки повторяющегося времени процессора при отрицательных переходах смещения часового пояса

Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top