php8.5
Home/ Manual/ reference / intl/ The IntlCalendar class

The IntlCalendar class

Calendar field numerically representing an era, for instance 1 for AD and 0 for BC in the Gregorian/Julian calendars and 235 for the Heisei (平成) era in the Japanese calendar. Not all calendars have more than one era.

Intro

Class synopsis

class IntlCalendar { }

Predefined Constants

IntlCalendar::FIELD_ERAint

Calendar field numerically representing an era, for instance 1 for AD and 0 for BC in the Gregorian/Julian calendars and 235 for the Heisei (平成) era in the Japanese calendar. Not all calendars have more than one era.

IntlCalendar::FIELD_YEARint

Calendar field for the year. This is not unique across eras. If the calendar type has more than one era, generally the minimum value for this field will be 1.

IntlCalendar::FIELD_MONTHint

Calendar field for the month. The month sequence is zero-based, so January (here used to signify the first month of the calendar; this may be called another name, such as Muharram in the Islamic calendar) is represented by 0, February by 1, …, December by 11 and, for calendars that have it, the 13th or leap month by 12.

IntlCalendar::FIELD_WEEK_OF_YEARint

Calendar field for the number of the week of the year. This depends on which day of the week is deemed to start the week and the minimal number of days in a week.

IntlCalendar::FIELD_WEEK_OF_MONTHint

Calendar field for the number of the week of the month. This depends on which day of the week is deemed to start the week and the minimal number of days in a week.

IntlCalendar::FIELD_DATEint

Calendar field for the day of the month. The same as IntlCalendar::FIELD_DAY_OF_MONTH, which has a clearer name.

IntlCalendar::FIELD_DAY_OF_YEARint

Calendar field for the day of the year. For the Gregorian calendar, starts with 1 and ends with 365 or 366.

IntlCalendar::FIELD_DAY_OF_WEEKint

Calendar field for the day of the week. Its values start with 1 (Sunday, see IntlCalendar::DOW_SUNDAY and subsequent constants) and the last valid value is 7 (Saturday).

IntlCalendar::FIELD_DAY_OF_WEEK_IN_MONTHint

Given a day of the week (Sunday, Monday, …), this calendar field assigns an ordinal to such a day of the week in a specific month. Thus, if the value of this field is 1 and the value of the day of the week is 2 (Monday), then the set day of the month is the 1st Monday of the month; the maximum value is 5.

Additionally, the value 0 and negative values are also allowed. The value 0 encompasses the seven days that occur immediately before the first seven days of a month (which therefore have a ‘day of week in month’ with value 1). Negative values starts counting from the end of the month – -1 points to the last occurrence of a day of the week in a month, -2 to the second last, and so on.

Unlike IntlCalendar::FIELD_WEEK_OF_MONTH and IntlCalendar::FIELD_WEEK_OF_YEAR, this value does not depend on IntlCalendar::getFirstDayOfWeek() or on IntlCalendar::getMinimalDaysInFirstWeek(). The first Monday is the first Monday, even if it occurs in a week that belongs to the previous month.

IntlCalendar::FIELD_AM_PMint

Calendar field indicating whether a time is before noon (value 0, AM) or after (1). Midnight is AM, noon is PM.

IntlCalendar::FIELD_HOURint

Calendar field for the hour, without specifying whether itʼs in the morning or in the afternoon. Valid values are 0 to 11.

IntlCalendar::FIELD_HOUR_OF_DAYint

Calendar field for the full (24h) hour of the day. Valid values are 0 to 23.

IntlCalendar::FIELD_MINUTEint

Calendar field for the minutes component of the time.

IntlCalendar::FIELD_SECONDint

Calendar field for the seconds component of the time.

IntlCalendar::FIELD_MILLISECONDint

Calendar field the milliseconds component of the time.

IntlCalendar::FIELD_ZONE_OFFSETint

Calendar field indicating the raw offset of the timezone, in milliseconds. The raw offset is the timezone offset, excluding any offset due to daylight saving time.

IntlCalendar::FIELD_DST_OFFSETint

Calendar field for the daylight saving time offset of the calendarʼs timezone, in milliseconds, if active for calendarʼs time.

IntlCalendar::FIELD_YEAR_WOYint

Calendar field representing the year for week of year purposes.

IntlCalendar::FIELD_DOW_LOCALint

Calendar field for the localized day of the week. This is a value between 1 and 7, 1 being used for the day of the week that matches the value returned by IntlCalendar::getFirstDayOfWeek().

IntlCalendar::FIELD_EXTENDED_YEARint

Calendar field for a year number representation that is continuous across eras. For the Gregorian calendar, the value of this field matches that of IntlCalendar::FIELD_YEAR for AD years; a BC year y is represented by -y + 1.

IntlCalendar::FIELD_JULIAN_DAYint

Calendar field for a modified Julian day number. It is different from a conventional Julian day number in that its transitions occur at local zone midnight rather than at noon UTC. It uniquely identifies a date.

IntlCalendar::FIELD_MILLISECONDS_IN_DAYint

Calendar field encompassing the information in IntlCalendar::FIELD_HOUR_OF_DAY, IntlCalendar::FIELD_MINUTE, IntlCalendar::FIELD_SECOND and IntlCalendar::FIELD_MILLISECOND. Range is from the 0 to 24 * 3600 * 1000 - 1. It is not the amount of milliseconds elapsed in the day since on DST transitions it will have discontinuities analog to those of the wall time.

IntlCalendar::FIELD_IS_LEAP_MONTHint

Calendar field whose value is 1 for indicating a leap month and 0 otherwise.

IntlCalendar::FIELD_FIELD_COUNTint

The total number of fields.

IntlCalendar::FIELD_DAY_OF_MONTHint

Alias for IntlCalendar::FIELD_DATE.

IntlCalendar::DOW_SUNDAYint

Sunday.

IntlCalendar::DOW_MONDAYint

Monday.

IntlCalendar::DOW_TUESDAYint

Tuesday.

IntlCalendar::DOW_WEDNESDAYint

Wednesday.

IntlCalendar::DOW_THURSDAYint

Thursday.

IntlCalendar::DOW_FRIDAYint

Friday.

IntlCalendar::DOW_SATURDAYint

Saturday.

IntlCalendar::DOW_TYPE_WEEKDAYint

Output of IntlCalendar::getDayOfWeekType() indicating a day of week is a weekday.

IntlCalendar::DOW_TYPE_WEEKENDint

Output of IntlCalendar::getDayOfWeekType() indicating a day of week belongs to the weekend.

IntlCalendar::DOW_TYPE_WEEKEND_OFFSETint

Output of IntlCalendar::getDayOfWeekType() indicating the weekend begins during the given day of week.

IntlCalendar::DOW_TYPE_WEEKEND_CEASEint

Output of IntlCalendar::getDayOfWeekType() indicating the weekend ends during the given day of week.

IntlCalendar::WALLTIME_FIRSTint

Output of IntlCalendar::getSkippedWallTimeOption() indicating that wall times in the skipped range should refer to the same instant as wall times with one hour less and of IntlCalendar::getRepeatedWallTimeOption() indicating the wall times in the repeated range should refer to the instant of the first occurrence of such wall time.

IntlCalendar::WALLTIME_LASTint

Output of IntlCalendar::getSkippedWallTimeOption() indicating that wall times in the skipped range should refer to the same instant as wall times with one hour after and of IntlCalendar::getRepeatedWallTimeOption() indicating the wall times in the repeated range should refer to the instant of the second occurrence of such wall time.

IntlCalendar::WALLTIME_NEXT_VALIDint

Output of IntlCalendar::getSkippedWallTimeOption() indicating that wall times in the skipped range should refer to the instant when the daylight saving time transition occurs (begins).

Changelog

VersionDescription
8.4.0The class constants are now typed.

Intlcalendar

In this section

IntlCalendar::__construct

Private constructor for disallowing instantiation

IntlCalendar::add

Add a (signed) amount of time to a field

IntlCalendar::after

Whether this objectʼs time is after that of the passed object

IntlCalendar::before

Whether this objectʼs time is before that of the passed object

IntlCalendar::clear

Clear a field or all fields

IntlCalendar::createInstance

Create a new IntlCalendar

IntlCalendar::equals

Compare time of two IntlCalendar objects for equality

IntlCalendar::fieldDifference

Calculate difference between given time and this objectʼs time

IntlCalendar::fromDateTime

Create an IntlCalendar from a DateTime object or string

IntlCalendar::get

Get the value for a field

IntlCalendar::getActualMaximum

The maximum value for a field, considering the objectʼs current time

IntlCalendar::getActualMinimum

The minimum value for a field, considering the objectʼs current time

IntlCalendar::getAvailableLocales

Get array of locales for which there is data

IntlCalendar::getDayOfWeekType

Tell whether a day is a weekday, weekend or a day that has a transition between the two

IntlCalendar::getErrorCode

Get last error code on the object

IntlCalendar::getErrorMessage

Get last error message on the object

IntlCalendar::getFirstDayOfWeek

Get the first day of the week for the calendarʼs locale

IntlCalendar::getGreatestMinimum

Get the largest local minimum value for a field

IntlCalendar::getKeywordValuesForLocale

Get set of locale keyword values

IntlCalendar::getLeastMaximum

Get the smallest local maximum for a field

IntlCalendar::getLocale

Get the locale associated with the object

IntlCalendar::getMaximum

Get the global maximum value for a field

IntlCalendar::getMinimalDaysInFirstWeek

Get minimal number of days the first week in a year or month can have

IntlCalendar::getMinimum

Get the global minimum value for a field

IntlCalendar::getNow

Get number representing the current time

IntlCalendar::getRepeatedWallTimeOption

Get behavior for handling repeating wall time

IntlCalendar::getSkippedWallTimeOption

Get behavior for handling skipped wall time

IntlCalendar::getTime

Get time currently represented by the object

IntlCalendar::getTimeZone

Get the objectʼs timezone

IntlCalendar::getType

Get the calendar type

IntlCalendar::getWeekendTransition

Get time of the day at which weekend begins or ends

IntlCalendar::inDaylightTime

Whether the objectʼs time is in Daylight Savings Time

IntlCalendar::isEquivalentTo

Whether another calendar is equal but for a different time

IntlCalendar::isLenient

Whether date/time interpretation is in lenient mode

IntlCalendar::isSet

Whether a field is set

IntlCalendar::isWeekend

Whether a certain date/time is in the weekend

IntlCalendar::roll

Add value to field without carrying into more significant fields

IntlCalendar::set

Set a time field or several common fields at once

IntlCalendar::setDate

Set a date fields

IntlCalendar::setDateTime

Set a date and time fields

IntlCalendar::setFirstDayOfWeek

Set the day on which the week is deemed to start

IntlCalendar::setLenient

Set whether date/time interpretation is to be lenient

IntlCalendar::setMinimalDaysInFirstWeek

Set minimal number of days the first week in a year or month can have

IntlCalendar::setRepeatedWallTimeOption

Set behavior for handling repeating wall times at negative timezone offset transitions

IntlCalendar::setSkippedWallTimeOption

Set behavior for handling skipped wall times at positive timezone offset transitions

IntlCalendar::setTime

Set the calendar time in milliseconds since the epoch

IntlCalendar::setTimeZone

Set the timezone used by this calendar

IntlCalendar::toDateTime

Convert an IntlCalendar into a DateTime object

Source: reference/intl/intlcalendar.xml · from the official PHP manual (php/doc-en)