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 实例。

示例

示例 #1 IntlCalendar::getSkippedWallTimeOption()

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

// 在 3 月 31 日凌晨 1:00,时钟向前拨 1 小时,从 GMT+00 变为 GMT+01
$cal = new IntlGregorianCalendar(2013, 2 /* 3 月 */, 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"

参见

添加笔记

用户贡献笔记

此页面没有用户贡献的笔记。
To Top