PHP Date/Time Functions
The date/time functions allow you to get the date and time from the server where your PHP script runs. You can then use the date/time functions to format the date and time in several ways.
Note: These functions depend on the locale settings of your server. Remember to take daylight saving time and leap years into consideration when working with these functions.
Installation
The PHP date/time functions are part of the PHP core. No installation is required to use these functions.
Runtime Configuration
The behavior of these functions is affected by settings in php.ini:
Name | Description | Default | PHP Version |
---|---|---|---|
date.timezone | The default timezone (used by all date/time functions) | «» | PHP 5.1 |
date.default_latitude | The default latitude (used by date_sunrise() and date_sunset()) | «31.7667» | PHP 5.0 |
date.default_longitude | The default longitude (used by date_sunrise() and date_sunset()) | «35.2333» | PHP 5.0 |
date.sunrise_zenith | The default sunrise zenith (used by date_sunrise() and date_sunset()) | «90.83» | PHP 5.0 |
date.sunset_zenith | The default sunset zenith (used by date_sunrise() and date_sunset()) | «90.83» | PHP 5.0 |
PHP Date/Time Functions
Function | Description |
---|---|
checkdate() | Validates a Gregorian date |
date_add() | Adds days, months, years, hours, minutes, and seconds to a date |
date_create_from_format() | Returns a new DateTime object formatted according to a specified format |
date_create() | Returns a new DateTime object |
date_date_set() | Sets a new date |
date_default_timezone_get() | Returns the default timezone used by all date/time functions |
date_default_timezone_set() | Sets the default timezone used by all date/time functions |
date_diff() | Returns the difference between two dates |
date_format() | Returns a date formatted according to a specified format |
date_get_last_errors() | Returns the warnings/errors found in a date string |
date_interval_create_from_date_string() | Sets up a DateInterval from the relative parts of the string |
date_interval_format() | Formats the interval |
date_isodate_set() | Sets the ISO date |
date_modify() | Modifies the timestamp |
date_offset_get() | Returns the timezone offset |
date_parse_from_format() | Returns an associative array with detailed info about a specified date, according to a specified format |
date_parse() | Returns an associative array with detailed info about a specified date |
date_sub() | Subtracts days, months, years, hours, minutes, and seconds from a date |
date_sun_info() | Returns an array containing info about sunset/sunrise and twilight begin/end, for a specified day and location |
date_sunrise() | Returns the sunrise time for a specified day and location |
date_sunset() | Returns the sunset time for a specified day and location |
date_time_set() | Sets the time |
date_timestamp_get() | Returns the Unix timestamp |
date_timestamp_set() | Sets the date and time based on a Unix timestamp |
date_timezone_get() | Returns the time zone of the given DateTime object |
date_timezone_set() | Sets the time zone for the DateTime object |
date() | Formats a local date and time |
getdate() | Returns date/time information of a timestamp or the current local date/time |
gettimeofday() | Returns the current time |
gmdate() | Formats a GMT/UTC date and time |
gmmktime() | Returns the Unix timestamp for a GMT date |
gmstrftime() | Formats a GMT/UTC date and time according to locale settings |
idate() | Formats a local time/date as integer |
localtime() | Returns the local time |
microtime() | Returns the current Unix timestamp with microseconds |
mktime() | Returns the Unix timestamp for a date |
strftime() | Formats a local time and/or date according to locale settings |
strptime() | Parses a time/date generated with strftime() |
strtotime() | Parses an English textual datetime into a Unix timestamp |
time() | Returns the current time as a Unix timestamp |
timezone_abbreviations_list() | Returns an associative array containing dst, offset, and the timezone name |
timezone_identifiers_list() | Returns an indexed array with all timezone identifiers |
timezone_location_get() | Returns location information for a specified timezone |
timezone_name_from_ abbr() | Returns the timezone name from abbreviation |
timezone_name_get() | Returns the name of the timezone |
timezone_offset_get() | Returns the timezone offset from GMT |
timezone_open() | Creates new DateTimeZone object |
timezone_transitions_get() | Returns all transitions for the timezone |
timezone_version_get() | Returns the version of the timezonedb |
PHP Predefined Date/Time Constants
Constant | Description |
---|---|
DATE_ATOM | Atom (example: 2019-01-18T14:13:03+00:00) |
DATE_COOKIE | HTTP Cookies (example: Fri, 18 Jan 2019 14:13:03 UTC) |
DATE_ISO8601 | ISO-8601 (example: 2019-01-18T14:13:03+0000) |
DATE_RFC822 | RFC 822 (example: Fri, 18 Jan 2019 14:13:03 +0000) |
DATE_RFC850 | RFC 850 (example: Friday, 18-Jan-19 14:13:03 UTC) |
DATE_RFC1036 | RFC 1036 (example: Friday, 18-Jan-19 14:13:03 +0000) |
DATE_RFC1123 | RFC 1123 (example: Fri, 18 Jan 2019 14:13:03 +0000) |
DATE_RFC2822 | RFC 2822 (example: Fri, 18 Jan 2019 14:13:03 +0000) |
DATE_RFC3339 | Same as DATE_ATOM (since PHP 5.1.3) |
DATE_RFC3339_EXTENDED | RFC3339 Extended format (since PHP 7.0.0) (example: 2019-01-18T16:34:01.000+00:00) |
DATE_RSS | RSS (Fri, 18 Jan 2019 14:13:03 +0000) |
DATE_W3C | World Wide Web Consortium (example: 2019-01-18T14:13:03+00:00) |
SUNFUNCS_RET_TIMESTAMP | Timestamp (since PHP 5.1.2) |
SUNFUNCS_RET_STRING | Hours:minutes (example: 09:41) (since PHP 5.1.2) |
SUNFUNCS_RET_DOUBLE | Hours as a floating point number (example: 9.75) (since PHP 5.1.2) |
The DateTimeInterface interface
DateTimeInterface was created so that parameter, return, or property type declarations may accept either DateTimeImmutable or DateTime as a value. It is not possible to implement this interface with userland classes.
Common constants that allow for formatting DateTimeImmutable or DateTime objects through DateTimeImmutable::format() and DateTime::format() are also defined on this interface.
Interface synopsis
Predefined Constants
DateTimeInterface::ATOM DATE_ATOM Atom (example: 2005-08-15T15:52:01+00:00) DateTimeInterface::COOKIE DATE_COOKIE HTTP Cookies (example: Monday, 15-Aug-2005 15:52:01 UTC) DateTimeInterface::ISO8601 DATE_ISO8601 ISO-8601 (example: 2005-08-15T15:52:01+0000)
Note: This format is not compatible with ISO-8601, but is left this way for backward compatibility reasons. Use DateTimeInterface::ISO8601_EXPANDED , DateTimeInterface::ATOM for compatibility with ISO-8601 instead. (ref ISO8601:2004 section 4.3.3 clause d)
DateTimeInterface::ISO8601_EXPANDED DATE_ISO8601_EXPANDED ISO-8601 Expanded (example: +10191-07-26T08:59:52+01:00)
Note: This format allows for year ranges outside of ISO-8601’s normal range of 0000 — 9999 by always including a sign character. It also addresses that that timezone part ( +01:00 ) is compatible with ISO-8601.
DateTimeInterface::RFC822 DATE_RFC822 RFC 822 (example: Mon, 15 Aug 05 15:52:01 +0000) DateTimeInterface::RFC850 DATE_RFC850 RFC 850 (example: Monday, 15-Aug-05 15:52:01 UTC) DateTimeInterface::RFC1036 DATE_RFC1036 RFC 1036 (example: Mon, 15 Aug 05 15:52:01 +0000) DateTimeInterface::RFC1123 DATE_RFC1123 RFC 1123 (example: Mon, 15 Aug 2005 15:52:01 +0000) DateTimeInterface::RFC7231 DATE_RFC7231 RFC 7231 (since PHP 7.0.19 and 7.1.5) (example: Sat, 30 Apr 2016 17:52:13 GMT) DateTimeInterface::RFC2822 DATE_RFC2822 RFC 2822 (example: Mon, 15 Aug 2005 15:52:01 +0000) DateTimeInterface::RFC3339 DATE_RFC3339 Same as DATE_ATOM DateTimeInterface::RFC3339_EXTENDED DATE_RFC3339_EXTENDED RFC 3339 EXTENDED format (example: 2005-08-15T15:52:01.000+00:00) DateTimeInterface::RSS DATE_RSS RSS (example: Mon, 15 Aug 2005 15:52:01 +0000) DateTimeInterface::W3C DATE_W3C World Wide Web Consortium (example: 2005-08-15T15:52:01+00:00)
Changelog
Version | Description |
---|---|
8.2.0 | The constant DateTimeInterface::ISO8601_EXPANDED was added. |
7.2.0 | The class constants of DateTime are now defined on DateTimeInterface . |
Table of Contents
- DateTimeInterface::diff — Returns the difference between two DateTime objects
- DateTimeInterface::format — Returns date formatted according to given format
- DateTimeInterface::getOffset — Returns the timezone offset
- DateTimeInterface::getTimestamp — Gets the Unix timestamp
- DateTimeInterface::getTimezone — Return time zone relative to given DateTime
- DateTime::__wakeup — The __wakeup handler
Класс DateTime
DateTime::ATOM DATE_ATOM Atom (пример: 2005-08-15T15:52:01+00:00) DateTime::COOKIE DATE_COOKIE HTTP Cookies (пример: Monday, 15-Aug-2005 15:52:01 UTC) DateTime::ISO8601 DATE_ISO8601 ISO-8601 (пример: 2005-08-15T15:52:01+0000) DateTime::RFC822 DATE_RFC822 RFC 822 (пример: Mon, 15 Aug 05 15:52:01 +0000) DateTime::RFC850 DATE_RFC850 RFC 850 (пример: Monday, 15-Aug-05 15:52:01 UTC) DateTime::RFC1036 DATE_RFC1036 RFC 1036 (пример: Mon, 15 Aug 05 15:52:01 +0000) DateTime::RFC1123 DATE_RFC1123 RFC 1123 (пример: Mon, 15 Aug 2005 15:52:01 +0000) DateTime::RFC2822 DATE_RFC2822 RFC 2822 (пример: Mon, 15 Aug 2005 15:52:01 +0000) DateTime::RFC3339 DATE_RFC3339 Тоже, что и DATE_ATOM (начиная с версии PHP 5.1.3) DateTime::RSS DATE_RSS RSS (пример: Mon, 15 Aug 2005 15:52:01 +0000) DateTime::W3C DATE_W3C World Wide Web Consortium (пример: 2005-08-15T15:52:01+00:00)
Список изменений
Версия | Описание |
---|---|
5.5.0 | Класс теперь реализует DateTimeInterface. |
5.4.24 | Константа COOKIE изменена, чтобы соответствовать RFC 1036, где используются 4 цифры года вместо двух (RFC 850), как было в предыдущих версиях. |
5.2.2 | Результаты сравнения DateTime объектов при использовании операторов сравнения теперь соответствуют смыслу этих операторов. Ранее все объекты считались равными (==). |