PHP Conference Japan 2024

IntlDateFormatter::setCalendar

datefmt_set_calendar

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

IntlDateFormatter::setCalendar -- datefmt_set_calendar設定格式器使用的日曆類型

說明

物件導向風格

public IntlDateFormatter::setCalendar(IntlCalendar|int|null $calendar): bool

程序風格

datefmt_set_calendar(IntlDateFormatter $formatter, IntlCalendar|int|null $calendar): bool

設定格式器使用的曆法或曆法類型。

參數

formatter

格式器資源。

calendar

可以是:要使用的曆法類型(預設為 IntlDateFormatter::GREGORIAN,如果指定 null 也會使用此類型)或 IntlCalendar 物件。

傳入的任何 IntlCalendar 物件都會被複製;不會修改參數物件。

只有在未傳入 IntlCalendar 物件時,才會保留格式器的時區,否則新的時區將會是傳入物件的時區。

返回值

成功時返回 true,失敗時返回 false

更新日誌

版本 說明
PECL intl 3.0.0 可以傳入 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

參見

新增註解

使用者貢獻筆記

目前此頁面尚無使用者貢獻的筆記。
To Top