use date function date ( string $format [, int $timestamp = time() ] )
Use date('c',time()) as format to convert to ISO 8601 date (added in PHP 5) - 2012-04-06T12:45:47+05:30
use date("Y-m-d\TH:i:s\Z",1333699439) to get 2012-04-06T13:33:59Z
Here are some of the formats date function supports
<?php $today = date("F j, Y, g:i a"); // March 10, 2001, 5:16 pm $today = date("m.d.y"); // 03.10.01 $today = date("j, n, Y"); // 10, 3, 2001 $today = date("Ymd"); // 20010310 $today = date('h-i-s, j-m-y, it is w Day'); // 05-16-18, 10-03-01, 1631 1618 6 Satpm01 $today = date('\i\t \i\s \t\h\e jS \d\a\y.'); // it is the 10th day. $today = date("D M j G:i:s T Y"); // Sat Mar 10 17:16:18 MST 2001 $today = date('H:m:s \m \i\s\ \m\o\n\t\h'); // 17:03:18 m is month $today = date("H:i:s"); // 17:16:18 ?>John on June 09, 2021
To convert a Unix timestamp to a readable date format in PHP, use the native date() function. Pass the format you wish to use as the first argument and the timestamp as the second.
To demonstrate this, let's generate a new Unix timestamp using the PHP time() function then print the day/month/year and hours:minutes:seconds.
$stamp = time(); $date = date("d F Y H:i:s", $stamp); print($date); 08 June 2021 20:33:01If you would like to understand PHP dates in more detail and the kinds of formatting that can be achieved, read my tutorial on how to use PHP DateTime() objects.
How to convert epoch / UNIX timestamps to normal readable date/time using PHP 7.
- Getting current epoch time in PHP
- Converting from epoch to normal date in PHP
- Converting from normal date to epoch in PHP
- Convert time zones in PHP
- Adding years/months to a date in PHP
- Comments
Getting current epoch time in PHP
Time returns an integer with the current epoch:
time() // current Unix timestamp microtime(true) // microtime returns timestamp with microseconds (param: true=float, false=string)Convert from epoch to human-readable date in PHP
1. Use the 'date' function.
$epoch = 1483228800; echo date('r', $epoch); // output as RFC 2822 date - returns local time echo gmdate('r', $epoch); // returns GMT/UTC time: Sun, 01 Jan 2017 00:00:00 +0000You can use the time zone code below (date_default_timezone_set) to switch the time zone of the input date.
2. Use the DateTime class.
$epoch = 1483228800; $dt = new DateTime("@$epoch"); // convert UNIX timestamp to PHP DateTime echo $dt->format('Y-m-d H:i:s'); // output = 2017-01-01 00:00:00In the examples above "r" and "Y-m-d H:i:s" are PHP date formats, other examples:
r | Wed, 15 Mar 2017 12:00:00 +0100 (RFC 2822 date) |
c | 2017-03-15T12:00:00+01:00 (ISO 8601 date) |
M/d/Y | Mar/15/2017 |
d-m-Y | 15-03-2017 |
Y-m-d H:i:s | 2017-03-15 12:00:00 |
Complete list of format options
Convert from human-readable date to epoch in PHP
There are many options:
1. Using 'strtotime':
strtotime parses most English language date texts to epoch/Unix Time.
echo strtotime("15 November 2017"); // ... or ... echo strtotime("2017/11/15"); // ... or ... echo strtotime("+10 days"); // 10 days from nowIt's important to check if the conversion was successful:
if ((strtotime("this is no date")) === false) { echo 'failed'; }2. Using the DateTime class:
The PHP DateTime class is nicer to use:
// object oriented $date = new DateTime('01/15/2017'); // format: MM/DD/YYYY echo $date->format('U'); // or procedural $date = date_create('01/15/2017'); echo date_format($date, 'U');The date format 'U' converts the date to a UNIX timestamp.
3. Using 'mktime':
This version is more of a hassle but works on any PHP version.
// PHP 5.1+ date_default_timezone_set('UTC'); // optional mktime ( $hour, $minute, $second, $month, $day, $year ); // example: generate epoch for Jan 1, 2000 (all PHP versions) echo mktime(0, 0, 0, 1, 1, 2000);All these PHP routines can't handle dates before 13 December 1901.
Set your timezone
Use date_default_timezone_set to set/overrule your timezone.
The PHP time zone handling takes care of daylight
saving times (list of available time zones).
Examples:
date_default_timezone_set('Europe/Amsterdam'); date_default_timezone_set('America/New York'); date_default_timezone_set('EST'); date_default_timezone_set('UTC');Convert date/time to another time zone
$TimeStr="2017-01-01 12:00:00"; $TimeZoneNameFrom="UTC"; $TimeZoneNameTo="Europe/Amsterdam"; echo date_create($TimeStr, new DateTimeZone($TimeZoneNameFrom)) ->setTimezone(new DateTimeZone($TimeZoneNameTo))->format("Y-m-d H:i:s");List of time zones in PHP
Thanks to Albert Scholtalbers.
Adding or subtracting years/months to a date
With strtotime you can easily add or subtract years/months/days/hours/minutes/seconds to a date.
$currentDate = time(); // get current date echo "It is now: ".date("Y-m-d H:i:s", $currentDate)."\n "; $date = strtotime(date("Y-m-d H:i:s", $currentDate) . " +1 year"); // add 1 year to current date echo "Date in epoch: ".$date."\n "; echo "Readable date: ".date("Y-m-d H:i:s",$date)."\n ";Other examples:
$date = strtotime(date("Y-m-d H:i:s", $currentDate) . " +1 month"); // add 1 month to a date $date = strtotime(date("Y-m-d H:i:s", $currentDate) . " +6 months"); // add 6 months $date = strtotime(date("Y-m-d H:i:s", $currentDate) . " +1 day"); // add 1 day $date = strtotime(date("Y-m-d H:i:s", $currentDate) . " -12 hours"); // subtract 12 hours $date = strtotime(date("Y-m-d H:i:s", $currentDate) . " -1 day -12 hours"); // subtract 1 day and 12 hours« Epoch Converter Functions