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

    (PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)

    Set a time field or several common fields at once

    说明

    面向对象风格
    publicIntlCalendar::set(int $field,int $value): bool
    publicIntlCalendar::set(int $year,int $month[,int $dayOfMonth= NULL[,int $hour= NULL[,int $minute= NULL[,int $second= NULL]]]]): bool
    过程化风格
    intlcal_set(IntlCalendar$cal,int $field,int $value): bool
    intlcal_set(IntlCalendar$cal,int $year,int $month[,int $dayOfMonth= NULL[,int $hour= NULL[,int $minute= NULL[,int $second= NULL]]]]): bool

    Sets either a specific field to the given value, or sets at once several common fields. The range of values that are accepted depend on whether the calendar is using the lenient mode.

    For fields that conflict, the fields that are set later have priority.

    This method cannot be called with exactly four arguments.

    参数

    $cal

    The IntlCalendar resource.

    $field

    One of the IntlCalendar date/time field constants. These are integer values between0and IntlCalendar::FIELD_COUNT.

    $value

    The new value of the given field.

    $year

    The new value for IntlCalendar::FIELD_YEAR.

    $month

    The new value for IntlCalendar::FIELD_MONTH.

    $dayOfMonth

    The new value for IntlCalendar::FIELD_DAY_OF_MONTH. The month sequence is zero-based, i.e., January is represented by 0, February by 1,…, December is 11 and Undecember(if the calendar has it)is 12.

    $hour

    The new value for IntlCalendar::FIELD_HOUR_OF_DAY.

    $minute

    The new value for IntlCalendar::FIELD_MINUTE.

    $second

    The new value for IntlCalendar::FIELD_SECOND.

    返回值

    Returns TRUE on success and FALSE on failure.

    范例

    IntlCalendar::set()

    <?php
    ini_set('date.timezone', 'Europe/Lisbon');
    ini_set('intl.default_locale', 'pt_PT');
    //Calls made later have priority
    $cal = new IntlGregorianCalendar(2013, 6 /* July */, 1);
    $cal->set(IntlCalendar::FIELD_YEAR, 2012);
    $cal->set(IntlCalendar::FIELD_EXTENDED_YEAR, 2011);
    var_dump(IntlDateFormatter::formatObject($cal));
    $cal = new IntlGregorianCalendar(2013, 6 /* July */, 1);
    $cal->set(IntlCalendar::FIELD_YEAR, 2012);
    $cal->set(IntlCalendar::FIELD_EXTENDED_YEAR, 2011);
    //the time has not been recalculated yet. If we clear the extended year,
    //the year set before will be used
    $cal->clear(IntlCalendar::FIELD_EXTENDED_YEAR);
    var_dump(IntlDateFormatter::formatObject($cal));

    以上例程会输出:

    string(20) "01/07/2011, 00:00:00"
    string(20) "01/07/2012, 00:00:00"
    

    参见

    • IntlCalendar::get() Get the value for a field
    • IntlCalendar::add() Add a(signed)amount of time to a field
    • IntlCalendar::roll() Add value to field without carrying into more significant fields