PHP Date/Time Functions
PHP Date/Time Introduction
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 "" PHP 5.1
functions)
date.default_latitude The default latitude (used by date_sunrise() "31.7667" PHP 5.0
and date_sunset())
date.default_longitude The default longitude (used by "35.2333" PHP 5.0
date_sunrise() and date_sunset())
date.sunrise_zenith The default sunrise zenith (used by "90.83" PHP 5.0
date_sunrise() and date_sunset())
date.sunset_zenith The default sunset zenith (used by "90.83" PHP 5.0
date_sunrise() and date_sunset())
ADVERTISEMENT
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)
PHP mktime() Function
❮ PHP Date/Time Reference
ExampleGet your own PHP Server
Return the Unix timestamp for a date. Then use it to find the day of that
date:
<?php
// Prints: October 3, 1975 was on a Friday
echo "Oct 3, 1975 was on a ".date("l", mktime(0,0,0,10,3,1975));
?>
Try it Yourself »
Definition and Usage
The mktime() function returns the Unix timestamp for a date.
Tip: This function is identical to gmmktime() except the passed parameters
represents a date (not a GMT date).
Syntax
mktime(hour, minute, second, month, day, year, is_dst)
examples :
<?php
echo "Today is " . date("Y/m/d") . "<br>";
echo "Today is " . date("Y.m.d") . "<br>";
echo "Today is " . date("Y-m-d") . "<br>";
echo "Today is " . date("l");
?>
<?php
$d=mktime(11, 14, 54, 8, 12, 2014);
echo "Created date is " . date("Y-m-d h:i:sa", $d);
?>
<?php
$d=strtotime("10:30pm April 15 2014");
echo "Created date is " . date("Y-m-d h:i:sa", $d);
?>
<?php
$d=strtotime("tomorrow");
echo date("Y-m-d h:i:sa", $d) . "<br>";
$d=strtotime("next Saturday");
echo date("Y-m-d h:i:sa", $d) . "<br>";
$d=strtotime("+3 Months");
echo date("Y-m-d h:i:sa", $d) . "<br>";
?>
<?php
$startdate = strtotime("Saturday");
$enddate = strtotime("+6 weeks", $startdate);
while ($startdate < $enddate) {
echo date("M d", $startdate) . "<br>";
$startdate = strtotime("+1 week", $startdate);
}
?>