get UTC time in PHP

PhpDatetimeUtc

Php Problem Overview


How can I get UTC/GMT +/- time stamp using PHP's date() function? For example, if I try

date("Y-m-d H:i:s", time()); 

I will get Unix time stamp; but I need to get UTC/GMT time stamp with string GMT/UTC+/-0400 or GMT/UTC+/-1000 based on local timings.

Php Solutions


Solution 1 - Php

Using gmdate will always return a GMT date. Syntax is same as for date.

Solution 2 - Php

A simple gmdate() will suffice

<?php
print gmdate("Y-m-d\TH:i:s\Z");

Solution 3 - Php

As previously answered here, since PHP 5.2.0 you can use the DateTime class and specify the UTC timezone with an instance of DateTimeZone.

The DateTime __construct() documentation suggests passing "now" as the first parameter when creating a DateTime instance and specifying a timezone to get the current time.

$date_utc = new \DateTime("now", new \DateTimeZone("UTC"));

echo $date_utc->format(\DateTime::RFC850); # Saturday, 18-Apr-15 03:23:46 UTC

Solution 4 - Php

$time = time();
$check = $time+date("Z",$time);
echo strftime("%B %d, %Y @ %H:%M:%S UTC", $check);

Solution 5 - Php

Obtaining UTC date

gmdate("Y-m-d H:i:s");

Obtaining UTC timestamp

time();

The result will not be different even you have date_default_timezone_set on your code.

Solution 6 - Php

date("Y-m-d H:i:s", time() - date("Z"))

Solution 7 - Php

Other than calling gmdate you can also put this code before your rest of the code:

<?php
date_default_timezone_set("UTC");
?>

That will make rest of your date/time related calls to use GMT/UTC timezone.

Solution 8 - Php

You can use gmmktime function without arguments to obtain the current UTC timestamp:

$time = gmmktime();
echo date("Y-m-d H:i:s", $time); 

gmmktime will only work if your server time is using UTC. For example, my server is set to US/Pacific. the listed function above echos back Pacific time.

Solution 9 - Php

> with string GMT/UTC +/-0400 or GMT/UTC +/-1000 based on local timings

Your custom format is just missing O to give you the timezone offsets from local time.

> Difference to Greenwich time (GMT) in hours Example: +0200

date_default_timezone_set('America/La_Paz');
echo date('Y-m-d H:i:s O');

> 2018-01-12 12:10:11 -0400

However, for maximized portability/interoperability, I would recommend using the ISO8601 date format c

date_default_timezone_set('America/La_Paz');
echo date('c');

> 2018-01-12T12:10:11-04:00

date_default_timezone_set('Australia/Brisbane');
echo date('c');

> 2018-01-13T02:10:11+10:00

You can use also gmdate and the timezone offset string will always be +00:00

date_default_timezone_set('America/La_Paz');
echo gmdate('c');

> 2018-01-12T16:10:11+00:00

date_default_timezone_set('Australia/Brisbane');
echo gmdate('c');

> 2018-01-12T16:10:11+00:00

Solution 10 - Php

You can use following to get UTC time:

date_default_timezone_set('Asia/Calcutta');

$current_date = date("Y/m/d g:i A");

$ist_date = DateTime::createFromFormat(
						'"Y/m/d g:i A"',
						$current_date,
						new DateTimeZone('Asia/Calcutta')
					);

$utc_date = clone $ist_date;
$utc_date->setTimeZone(new DateTimeZone('UTC'));

echo 'UTC:  ' . $utc_date->format('Y-m-d g:i A');

Solution 11 - Php

/**
	 * Converts a local Unix timestamp to GMT
	 *
	 * @param	int	Unix timestamp
	 * @return	int
	 */
	function local_to_gmt($time = '')
	{
		if ($time === '')
		{
			$time = time();
		}

		return mktime(
			gmdate('G', $time),
			gmdate('i', $time),
			gmdate('s', $time),
			gmdate('n', $time),
			gmdate('j', $time),
			gmdate('Y', $time)
		);
	}

Solution 12 - Php

You'd like to use gmdate method to get GMT date.

gmdate("Y-m-d H:i:s");

gmdate date-formats resemble those in the date() method.

Solution 13 - Php

$code->created_at->setTimezone('UTC')

here $code->created_at = Asia/Dhaka Time.

Solution 14 - Php

Below find the PHP code to get current UTC(Coordinated Universal Time) time

<?php
// Prints the day
echo gmdate("l") . "<br>";

// Prints the day, date, month, year, time, AM or PM
echo gmdate("l jS \of F Y h:i:s A");
?>

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionRobin Michael PoothuraiView Question on Stackoverflow
Solution 1 - Phpnikc.orgView Answer on Stackoverflow
Solution 2 - PhpShankar Narayana DamodaranView Answer on Stackoverflow
Solution 3 - PhpJessedcView Answer on Stackoverflow
Solution 4 - PhpSudhir BastakotiView Answer on Stackoverflow
Solution 5 - PhpStefansAryaView Answer on Stackoverflow
Solution 6 - PhpAllanrboView Answer on Stackoverflow
Solution 7 - PhpanubhavaView Answer on Stackoverflow
Solution 8 - PhpocirocirView Answer on Stackoverflow
Solution 9 - PhpJeff PuckettView Answer on Stackoverflow
Solution 10 - PhpDalipView Answer on Stackoverflow
Solution 11 - Phprealmag777View Answer on Stackoverflow
Solution 12 - PhpZhaoRachiView Answer on Stackoverflow
Solution 13 - PhpJOY KUMAR PALView Answer on Stackoverflow
Solution 14 - PhpShivasagarView Answer on Stackoverflow