文字

IntlCalendar::getSkippedWallTimeOption

(PHP 5.5.0, PECL >= 3.0.0a1)

IntlCalendar::getSkippedWallTimeOptionGet behavior for handling skipped wall time

说明

面向对象风格

public int IntlCalendar::getSkippedWallTimeOption ( void )

过程化风格

int intlcal_get_skipped_wall_time_option ( IntlCalendar $cal )

Gets the current strategy for dealing with wall times that are skipped whenever the clock is forwarded during dailight saving time start transitions. The default value is IntlCalendar::WALLTIME_LAST .

The calendar must be lenient for this option to have any effect, otherwise attempting to set a non-existing time will cause an error.

This function requires ICU 4.9 or later.

参数

cal

The IntlCalendar resource.

返回值

One of the constants IntlCalendar::WALLTIME_FIRST , IntlCalendar::WALLTIME_LAST or IntlCalendar::WALLTIME_NEXT_VALID .

范例

Example #1 IntlCalendar::getSkippedWallTimeOption()

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

//On March 31st at 0100, the clock goes forward 1 hour and from GMT+00 to GMT+01
$cal  = new  IntlGregorianCalendar ( 2013 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() - Get behavior for handling repeating wall time
  • IntlCalendar::setSkippedWallTimeOption() - Set behavior for handling skipped wall times at positive timezone offset transitions
  • IntlCalendar::setRepeatedWallTimeOption() - Set behavior for handling repeating wall times at negative timezone offset transitions
上一篇: 下一篇: