(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)
IntlCalendar::getSkippedWallTimeOption — Obtient le comportement pour la gestion des heures murales sautées
Style orienté objet
Style procédural
Renvoie la stratégie actuelle pour la gestion des heures murales sautées
lorsque l'horloge est avancée lors des transitions de début d'heure d'été.
La valeur par défaut est IntlCalendar::WALLTIME_LAST
.
Le calendrier doit être tolérant pour que cette option ait un effet, sinon tenter de définir une heure inexistante provoquera une erreur.
Cette fonction requiert ICU 4.9 ou plus récent.
calendar
Une instance IntlCalendar.
Une des constantes IntlCalendar::WALLTIME_FIRST
,
IntlCalendar::WALLTIME_LAST
ou
IntlCalendar::WALLTIME_NEXT_VALID
.
Exemple #1 IntlCalendar::getSkippedWallTimeOption()
<?php
ini_set('date.timezone', 'Europe/Lisbon');
ini_set('intl.default_locale', 'en_US');
ini_set('intl.error_level', E_WARNING);
//Le 31 Mars à 0100, l'horloge avancera d'une houre de 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));
L'exemple ci-dessus va afficher :
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"