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