Php convert unix timestamp to date

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
?>

Php convert unix timestamp to date

John on June 09, 2021

Php convert unix timestamp to date

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:01

If 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 +0000

You 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:00

In the examples above "r" and "Y-m-d H:i:s" are PHP date formats, other examples:

FormatOutput
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 now

It'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

Which function returns the Unix timestamp for a date in PHP?

The strtotime() function parses an English textual datetime into a Unix timestamp (the number of seconds since January 1 1970 00:00:00 GMT).

What is Unix timestamp in PHP?

PHP provides several date-time functions to perform required operations with temporal data. Now, we are going to see about PHP timestamp functions. The timestamp is the value represented as seconds calculated, since UNIX Epoch, January 1, 1970, and also called as UNIX timestamp.

How do I convert epoch to date?

Convert from epoch to human-readable date String date = new java.text.SimpleDateFormat("MM/dd/yyyy HH:mm:ss").format(new java.util.Date (epoch*1000)); Epoch in seconds, remove '*1000' for milliseconds. myString := DateTimeToStr(UnixToDateTime(Epoch)); Where Epoch is a signed integer. Replace 1526357743 with epoch.

How do I convert epoch time to manual date?

You can take an epoch time divided by 86400 (seconds in a day) floored and add 719163 (the days up to the year 1970) to pass to it. Awesome, this is as manual as it gets.