Set a time field or several common fields at once (original) (raw)
IntlCalendar::set
(PHP 5 >= 5.5.0, PHP 7, PECL >= 3.0.0a1)
IntlCalendar::set — Set a time field or several common fields at once
Description
Object oriented style
public IntlCalendar::set ( int $field
, int $value
) : bool
public IntlCalendar::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
For fields that conflict, the fields that are set later have priority.
This method cannot be called with exactly four arguments.
Parameters
cal
The IntlCalendar resource.
field
One of the IntlCalendar date/time field constants. These are integer values between 0
and**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
.
Return Values
Returns TRUE
on success and FALSE
on failure.
Examples
Example #1 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));
The above example will output:
string(20) "01/07/2011, 00:00:00" string(20) "01/07/2012, 00:00:00"
See Also
- 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