# Date and Time Functions

## Introduction

These functions allow you to get the date and time from the server where your PHP scripts are running. You can use these functions to format the date and time in many different ways.

> Note: Please keep in mind that these functions are dependent on the locale settings of your server. Make sure to take daylight saving time (use e.g. $date = strtotime('+7 days', $date) and not $date += 7*24*60*60) and leap years into consideration when working with these functions.

> Note: The timezones referenced in this section can be found in the List of Supported Timezones.

## Requirements

No external libraries are needed to build this extension.

## Installation

There is no installation needed to use these functions; they are part of the PHP core.

> Note: The latest version of the timezone database can be installed via PECL's » timezonedb. For Windows users, a pre-compiled DLL can be downloaded from the PECL4Win site: » php_timezonedb.dll.

## Runtime Configuration

The behaviour of these functions is affected by settings in php.ini.

Date/Time Configuration Options
Name | Default | Changeable | Changelog
--- | --- | --- | ---
date.default_latitude | "31.7667" | PHP_INI_ALL | Available since PHP 5.0.0.
date.default_longitude | "35.2333" | PHP_INI_ALL | Available since PHP 5.0.0.
date.sunrise_zenith | "90.583333" | PHP_INI_ALL | Available since PHP 5.0.0.
date.sunset_zenith | "90.583333" | PHP_INI_ALL | Available since PHP 5.0.0.
date.timezone | "" | PHP_INI_ALL | Available since PHP 5.1.0.

For further details and definitions of the PHP_INI_* constants, see the php.ini directives.

Here's a short explanation of the configuration directives.

`date.default_latitude` float

  The default latitude.

`date.default_longitude` float

  The default longitude.

`date.sunrise_zenith` float

  The default sunrise zenith.

`date.sunset_zenith` float

  The default sunset zenith.

`date.timezone` string

  The default timezone used by all date/time functions if the TZ environment variable isn't set. The precedence order is described in the date_default_timezone_get() page. See List of Supported Timezones for a list of supported timezones.

> Note: The first four configuration options are currently only used by date_sunrise() and date_sunset().

## Resource Types

This extension has no resource types defined.

## Predefined Constants

The following constants are defined since PHP 5.1.1 and they offer standard date representations, which can be used along with the date format functions (like date()).

`DATE_ATOM` (string)
  Atom (example: 2005-08-15T15:52:01+00:00)
`DATE_COOKIE` (string)
  HTTP Cookies (example: Monday, 15-Aug-05 15:52:01 UTC)
`DATE_ISO8601` (string)
  ISO-8601 (example: 2005-08-15T15:52:01+0000)
`DATE_RFC822` (string)
  RFC 822 (example: Mon, 15 Aug 05 15:52:01 +0000)
`DATE_RFC850` (string)
  RFC 850 (example: Monday, 15-Aug-05 15:52:01 UTC)
`DATE_RFC1036` (string)
  RFC 1036 (example: Mon, 15 Aug 05 15:52:01 +0000)
`DATE_RFC1123` (string)
  RFC 1123 (example: Mon, 15 Aug 2005 15:52:01 +0000)
`DATE_RFC2822` (string)
  RFC 2822 (Mon, 15 Aug 2005 15:52:01 +0000)
`DATE_RFC3339` (string)
  Same as `DATE_ATOM` (since PHP 5.1.3)
`DATE_RSS` (string)
  RSS (Mon, 15 Aug 2005 15:52:01 +0000)
`DATE_W3C` (string)
  World Wide Web Consortium (example: 2005-08-15T15:52:01+00:00)

Following constants exists since PHP 5.1.2 and specify a format returned by functions date_sunrise() and date_sunset().

`SUNFUNCS_RET_TIMESTAMP` (integer)
  Timestamp
`SUNFUNCS_RET_STRING` (integer)
  Hours:minutes (example: 08:02)
`SUNFUNCS_RET_DOUBLE` (integer)
  Hours as floating point number (example 8.75)

## Table of Contents

- checkdate — Validate a Gregorian date
- date_create — Returns new DateTime object
- date_date_set — Sets the date
- date_default_timezone_get — Gets the default timezone used by all date/time functions in a script
- date_default_timezone_set — Sets the default timezone used by all date/time functions in a script
- date_format — Returns date formatted according to given format
- date_isodate_set — Sets the ISO date
- date_modify — Alters the timestamp
- date_offset_get — Returns the daylight saving time offset
- date_parse — Returns associative array with detailed info about given date
- date_sun_info — Returns an array with information about sunset/sunrise and twilight begin/end
- date_sunrise — Returns time of sunrise for a given day and location
- date_sunset — Returns time of sunset for a given day and location
- date_time_set — Sets the time
- date_timezone_get — Return time zone relative to given DateTime
- date_timezone_set — Sets the time zone for the DateTime object
- date — Format a local time/date
- getdate — Get date/time information
- gettimeofday — Get current time
- gmdate — Format a GMT/UTC date/time
- gmmktime — Get Unix timestamp for a GMT date
- gmstrftime — Format a GMT/UTC time/date according to locale settings
- idate — Format a local time/date as integer
- localtime — Get the local time
- microtime — Return current Unix timestamp with microseconds
- mktime — Get Unix timestamp for a date
- strftime — Format a local time/date according to locale settings
- strptime — Parse a time/date generated with strftime
- strtotime — Parse about any English textual datetime description into a Unix timestamp
- time — Return current Unix timestamp
- timezone_abbreviations_list — Returns associative array containing dst, offset and the timezone name
- timezone_identifiers_list — Returns numerically index array with all timezone identifiers
- timezone_name_from_abbr — Returns the timezone name from abbrevation
- timezone_name_get — Returns the name of the timezone
- timezone_offset_get — Returns the timezone offset from GMT
- timezone_open — Returns new DateTimeZone object
- timezone_transitions_get — Returns all transitions for the timezone