I'm storing the UTC dates into the DB using:
$utc = gmdate("M d Y h:i:s A");
and then I want to convert the saved UTC date to the client's local time.
How can I do that?
Thanks
I'm storing the UTC dates into the DB using:
$utc = gmdate("M d Y h:i:s A");
and then I want to convert the saved UTC date to the client's local time.
How can I do that?
Thanks
PHP's strtotime function will interpret timezone codes, like UTC. If you get the date from the database/client without the timezone code, but know it's UTC, then you can append it.
Assuming you get the date with timestamp code (like "Fri Mar 23 2012 22:23:03 GMT-0700 (PDT)", which is what Javascript code ""+(new Date()) gives):
$time = strtotime($dateWithTimeZone);
$dateInLocal = date("Y-m-d H:i:s", $time);
Or if you don't, which is likely from MySQL, then:
$time = strtotime($dateInUTC.' UTC');
$dateInLocal = date("Y-m-d H:i:s", $time);
Here I am sharing the script, convert UTC timestamp to Indian timestamp:-
// create a $utc object with the UTC timezone
$IST = new DateTime('2016-12-12 12:12:12', new DateTimeZone('UTC'));
// change the timezone of the object without changing it's time
$IST->setTimezone(new DateTimeZone('Asia/Kolkata'));
// format the datetime
echo $IST->format('Y-m-d H:i:s T');
Given a local timezone, such as 'America/Denver', you can use DateTime class to convert UTC timestamp to the local date:
$timestamp = *********;
$date = new DateTime("@" . $timestamp);
$date->setTimezone(new DateTimeZone('America/Denver'));
echo $date->format('Y-m-d H:i:s');
$UTC_Time = "2018-07-06 06:06:16";
echo "UTC Time ".$UTC_Time;
$Indian_Time = TimeConverion($UTC_Time);
echo "<br> Indian_Time ".$Indian_Time;
function TimeConverion($UTC_Time) {
date_default_timezone_set('Europe/London');
$sTime = date("Y-m-d h:i:sa");
$ts3 = strtotime(date("G:i:s"))-strtotime($sTime);
$utc = explode(" ",$UTC_Time);
$time = strtotime($utc[1]);
date_default_timezone_set("Asia/Calcutta");
$time += $ts3; // Add the difference
return $utc[0]." ".date("H:i:s", $time);
}
Convert date in UTC to local time or another timezone in one line.
time in UTC: "2021-09-13 16:30:16"
output timezone: 'America/Havana'
(new DateTime('2021-09-13 16:30:16', new DateTimeZone('UTC')))
->setTimezone(new DateTimeZone('America/Havana'))
->format('Y-m-d H:i:s')