Back to Top

Manage time difference based on time zones

Updated 25 February 2016

With the globalisation, there emerges a need for showing the time to the users according to their location. And there emerges another question too that how can we find out the time zone of a user. Although, it is very easy to get the time zone of a user using client side language, i.e. “Javascript”. So, how to use the time zone saved in javascript into the PHP code to view zone-wise time. So, in order to use the time zone difference in the PHP, we will make use of cookies to store the time difference of a user.

In PHP, if we will use Date() function to print the time then we will have something like this:

PHP Code:

<?php
echo Date("Y-m-d H:i:s");
?>

Output of date and time:

Output of date
So, in order to get a correct time as per my location, I will use this code which will save the difference in a cookie and then we can easily make use of that difference saved in the cookie to show time as per a user.

Searching for an experienced
Opencart Company ?
Find out More
<?php
$myDate = Date("Y-m-d H:i:s");
echo 'PHP Time : '.$myDate;

echo '<script>
 createCookie("time_diff"); // calling the createCookie() function and saving the difference in "time_diff" variable

 function createCookie(name) {
	var rightNow = new Date();
	var jan1 = new Date(rightNow.getFullYear(), 0, 1, 0, 0, 0, 0);
	var temp = jan1.toGMTString();
	var jan2 = new Date(temp.substring(0, temp.lastIndexOf(" ")-1)); // manages the daylight hours saving
	var std_time_offset = (jan1 - jan2) / (1000 * 60 * 60);
  	document.cookie = escape(name) + "=" + std_time_offset + "; path=/";
 }
</script>';

if (isset($_COOKIE['time_diff'])) {
	echo "<br>";
	echo 'Time difference : '.$_COOKIE['time_diff'];
	$time_diff = $_COOKIE['time_diff'] * 3600;
}
$date = strtotime($myDate);

if (isset($time_diff) && $time_diff) {			
	$date = $date + $time_diff;
}

$newDate = date('Y/m/d H:i:s', $date);
echo "<br>";
echo 'Converted Time : '.$newDate;
?>

The output of the above code will be:

Output of PHP as well as converted time

So, as per my location “India”, I’m able to get a time difference of +5.5.

PS: The time difference mustn’t be saved in the cookie on the same page as it may give an error on using the cookie on the same page. The cookie must be saved a bit earlier than calculating the time.

. . .

Leave a Comment

Your email address will not be published. Required fields are marked*


Be the first to comment.

Back to Top

Message Sent!

If you have more details or questions, you can reply to the received confirmation email.

Back to Home