IntlCalendar::set
(PHP 5 >= 5.5.0, PHP 7, PHP 8, PECL >= 3.0.0a1)
Set a time field or several common fields at once
Description
Oop
Procedural
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.
Parameters
calIntl-calendar
fieldIncfieldparam
valueThe new value of the given field.
yearThe new value for
IntlCalendar::FIELD_YEAR.monthThe new value for
IntlCalendar::FIELD_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.dayOfMonthThe new value for
IntlCalendar::FIELD_DAY_OF_MONTH.hourThe new value for
IntlCalendar::FIELD_HOUR_OF_DAY.minuteThe new value for
IntlCalendar::FIELD_MINUTE.secondThe new value for
IntlCalendar::FIELD_SECOND.
Return Values
Always
Changelog
| Version | Description |
|---|---|
| 8.4.0 | This had been deprecated in favor of the methods IntlCalendar::setDate and IntlCalendar::setDateTime. |
Examples
<?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));The above example will output:
string(20) "01/07/2011, 00:00:00"
string(20) "01/07/2012, 00:00:00"See Also
IntlCalendar::getIntlCalendar::addIntlCalendar::roll