首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

IntlDateFormatter::setCalendar

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

IntlDateFormatter::setCalendar -- datefmt_set_calendar — Sets the calendar type used by the formatter

Description

Object oriented style

代码语言:javascript
复制
bool IntlDateFormatter::setCalendar ( mixed $which )

Procedural style

代码语言:javascript
复制
bool datefmt_set_calendar ( IntlDateFormatter $fmt , mixed $which )

Sets the calendar or calendar type used by the formatter.

Parameters

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.

Return Values

Returns TRUE on success or FALSE on failure.

Changelog

Version

Description

5.5.0/PECL 3.0.0

It became possible to pass an IntlCalendar object.

Examples

Example #1 datefmt_set_calendar() example

代码语言:javascript
复制
<?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

代码语言:javascript
复制
<?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();
?>

The above example will output:

代码语言:javascript
复制
calendar of the formatter is : 1
Now calendar of the formatter is : 0

Example #3 Example with IntlCalendar argument

代码语言:javascript
复制
<?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";

/*?note?that?the?calendar's?locale?is?not?used!?*/
$formatter->setCalendar(IntlCalendar::createInstance(
???????????????"America/New_York",?"pt_PT@calendar=islamic"));

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

The above example will output:

代码语言:javascript
复制
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

See Also

  • 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

← IntlDateFormatter::parse

IntlDateFormatter::setLenient →

代码语言:txt
复制
 ? 1997–2017 The PHP Documentation Group

Licensed under the Creative Commons Attribution License v3.0 or later.

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com