• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • IntlDateFormatter::setCalendar()

    datefmt_set_calendar

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

    Sets the calendar type used by the formatter

    说明

    面向对象风格
    IntlDateFormatter::setCalendar(mixed $which): bool
    过程化风格
    datefmt_set_calendar(IntlDateFormatter$fmt, mixed $which): bool

    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.

    范例

    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);
    ?>
    

    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 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";
    /* 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";

    以上例程会输出:

    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