文字

IntlDateFormatter::setCalendar

datefmt_set_calendar

(PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

IntlDateFormatter::setCalendar -- datefmt_set_calendarSets the calendar type used by the formatter

说明

面向对象风格

bool IntlDateFormatter::setCalendar ( mixed $which )

过程化风格

bool datefmt_set_calendar ( IntlDateFormatter $fmt , mixed $which )

Sets the calendar or calendar type used by the formatter.

参数

fmt

The formatter resource.

which

This can either be: the calendar type to use (default is IntlDateFormatter::GREGORIAN , which is also used if NULL is specified) or an IntlCalendar object.

Any IntlCalendar object passed in will be cloned; no modifications will be made to the argument object.

The timezone of the formatter will only be kept if an IntlCalendar object is not passed, otherwise the new timezone will be that of the passed object.

返回值

成功时返回 TRUE , 或者在失败时返回 FALSE

更新日志

版本 说明
5.5.0/PECL 3.0.0 It became possible to pass an IntlCalendar object.

范例

Example #1 datefmt_set_calendar() example

<?php
$fmt 
datefmt_create (
    
'en_US' ,
    
IntlDateFormatter :: FULL ,
    
IntlDateFormatter :: FULL ,
    
'America/Los_Angeles' ,
    
IntlDateFormatter :: GREGORIAN
);
echo 
'calendar of the formatter is : '  datefmt_get_calendar ( $fmt );
datefmt_set_calendar ( $fmt IntlDateFormatter :: TRADITIONAL );
echo 
'Now calendar of the formatter is : '  datefmt_get_calendar ( $fmt );
?>

Example #2 OO example

<?php
$fmt 
= new  IntlDateFormatter (
    
'en_US' ,
    
IntlDateFormatter :: FULL ,
    
IntlDateFormatter :: FULL ,
    
'America/Los_Angeles' ,
    
IntlDateFormatter :: GREGORIAN  
);
echo 
'calendar of the formatter is : '  $fmt -> getCalendar ();
$fmt -> setCalendar ( IntlDateFormatter :: TRADITIONAL );
echo 
'Now calendar of the formatter is : '  $fmt -> getCalendar ();
?>

以上例程会输出:

calendar of the formatter is : 1
Now calendar of the formatter is : 0

Example #3 Example with IntlCalendar argument

<?php
$time 
strtotime ( "2013-03-03 00:00:00 UTC" );
$formatter  IntlDateFormatter :: create ( "en_US" NULL NULL "Europe/Amsterdam" );

echo 
"before: " $formatter -> format ( $time ),  "\n" ;


$formatter -> setCalendar ( IntlCalendar :: createInstance (
               
"America/New_York" "pt_PT@calendar=islamic" ));

echo 
"after:  " $formatter -> format ( $time ),  "\n" ;

以上例程会输出:

before: Sunday, March 3, 2013 at 1:00:00 AM Central European Standard Time
after:  Saturday, Rabi? II 20, 1434 at 7:00:00 PM Eastern Standard Time

参见

  • datefmt_get_calendar() - Get the calendar type used for the IntlDateFormatter
  • datefmt_get_calendar_object() - Get copy of formatter?s calendar object
  • datefmt_create() - Create a date formatter
上一篇: 下一篇: