(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)
IntlDateFormatter::setCalendar -- datefmt_set_calendar — 設定格式器使用的日曆類型
物件導向風格
程序風格
設定格式器使用的曆法或曆法類型。
formatter
格式器資源。
calendar
可以是:要使用的曆法類型(預設為 IntlDateFormatter::GREGORIAN
,如果指定 null
也會使用此類型)或 IntlCalendar 物件。
傳入的任何 IntlCalendar 物件都會被複製;不會修改參數物件。
只有在未傳入 IntlCalendar 物件時,才會保留格式器的時區,否則新的時區將會是傳入物件的時區。
範例 #1 datefmt_set_calendar() 範例
<?php
$fmt = datefmt_create(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo '格式器的曆法為:' . datefmt_get_calendar($fmt);
datefmt_set_calendar($fmt, IntlDateFormatter::TRADITIONAL);
echo '現在格式器的曆法為:' . datefmt_get_calendar($fmt);
?>
範例 #2 物件導向範例
<?php
$fmt = new IntlDateFormatter(
'en_US',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'America/Los_Angeles',
IntlDateFormatter::GREGORIAN
);
echo '格式器的日曆為:' . $fmt->getCalendar();
$fmt->setCalendar(IntlDateFormatter::TRADITIONAL);
echo '現在格式器的日曆為:' . $fmt->getCalendar();
?>
上述範例將輸出:
calendar of the formatter is : 1 Now calendar of the formatter is : 0
範例 #3 使用 IntlCalendar 參數的範例
<?php
$time = strtotime("2013-03-03 00:00:00 UTC");
$formatter = IntlDateFormatter::create("en_US", NULL, NULL, "Europe/Amsterdam");
echo "設定前:", $formatter->format($time), "\n";
/* 注意:日曆的地區設定不會被使用! */
$formatter->setCalendar(IntlCalendar::createInstance(
"America/New_York", "pt_PT@calendar=islamic"));
echo "設定後:", $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