Source code
<?php
ob_start();/* header buffer */
session_start();
?>
<html>
<body>
<a href="http://snippets.bluejon.co.uk/index.php"/>MENU</a>
<br><br><br>
<?php
/*
Javascript has to be run on computers to get their local time.
The time is stored in $_SESSIONS.
If the $_SESSIONS are unset, javascript is run to get the time offset from GMT.
The result is put into a form in a hidden field the sent by post.
The GMT time is then got with php and changed to the local time with the posted offset.
Change php date $_SESSIONS to progam needs.
*/
### test for time zone offset $_POST #####################################
if (isset($_POST['offsetHours'])){
$_SESSION['gmtOffset']= $_POST['offsetHours'];
### set timestamps ###################################################
$utc_str = gmdate("M d Y H:i:s", time());
$gmtTime = strtotime($utc_str);
$localTime= $gmtTime+ ($_SESSION['gmtOffset']*3600);/*adjust to local time*/
### calculate date variables #########################################
$_SESSION['gmtYear']= date(Y,$gmtTime);/*Year, four diget*/
$_SESSION['gmtMonthNum']= date(n,$gmtTime);/*month number, no leading zeros*/
$_SESSION['gmtMonthName']= date(M,$gmtTime);/*month name, three letters*/
$_SESSION['gmtMonthDayNum']= date(j,$gmtTime);/*day of the month*/
$_SESSION['gmtWeekDayNum']= date(w,$gmtTime);/*day of the week number, 0=Sun>6=Sat*/
$_SESSION['gmtWeekDayName']= date(D,$gmtTime);/*day of the week name, three letters*/
$_SESSION['gmtHour']= date(G,$gmtTime);/*hour of the day, 24hr*/
$_SESSION['gmtMinute']= date(i,$gmtTime);/*minutes*/
$_SESSION['gmtSecond']= date(s,$gmtTime);/*seconds*/
$_SESSION['ltYear']= date(Y,$localTime);/*Year, four digets*/
$_SESSION['ltMonthNum']= date(n,$localTime);/*month number, no leading zeros*/
$_SESSION['ltMonthName']= date(M,$localTime);/*month name, three letters */
$_SESSION['ltMonthDayNum']= date(j,$localTime);/*day of the month*/
$_SESSION['ltWeekDayNum']= date(w,$localTime);/*day of the week number, 0=Sun>6=Sat*/
$_SESSION['ltWeekDayName']= date(D,$localTime);/*day of the week name, three letters*/
$_SESSION['ltHour']= date(G,$localTime);/*hour of the day, 24hr*/
$_SESSION['ltMinute']= date(i,$localTime);/*minutes*/
$_SESSION['ltSecond']= date(s,$localTime);/*seconds*/
### print time zone offset hours ########################################
print"Time zone offset= ". $_SESSION['gmtOffset']. "<br>";
### print GMT time #######################################################
print "<br>GMT time<br>";
print "GMT date= ". date("M d Y H:i:s",$gmtTime)."<br>"; /*gmt date*/
print "GMT year= ". $_SESSION['gmtYear']. "<br>";
print "GMT month number= ". $_SESSION['gmtMonthNum']. "<br>";
print "GMT month name= ". $_SESSION['gmtMonthName']. "<br>" ;
print "GMT day of the month= ". $_SESSION['gmtMonthDayNum']. "<br>";
print "GMT weekday number= ". $_SESSION['gmtWeekDayNum']. "<br>";
print "GMT weekday name= ". $_SESSION['gmtWeekDayName']. "<br>";
print "GMT hour of day= ". $_SESSION['gmtHour']. "<br>";
print "GMT minutes= ". $_SESSION['gmtMinute']. "<br>";
print "GMT seconds= ". $_SESSION['gmtSecond']. "<br>";
### print local time ###################################################
print "<br>Local time<br>";
print "Local time date= ". date("M d Y H:i:s",$localTime)."<br>"; /*local time date*/
print "Local time year= ". $_SESSION['ltYear']. "<br>";
print "Local time month number= ". $_SESSION['ltMonthNum']. "<br>";
print "Local time month name= ". $_SESSION['ltMonthName']. "<br>" ;
print "Local time day of the month= ". $_SESSION['ltMonthDayNum']. "<br>";
print "Local time weekday number= ". $_SESSION['ltWeekDayNum']. "<br>";
print "Local time weekday name= ". $_SESSION['ltWeekDayName']. "<br>";
print "Local time hour of day= ". $_SESSION['ltHour']. "<br>";
print "Local time minutes= ". $_SESSION['ltMinute']. "<br>";
print "Local time seconds= ". $_SESSION['ltSecond']. "<br>";
### enbeded javascript to get local time zone ###############################
}else{/* test to see if $_SESSION is set */
?>
<form name="offsetHoursForm" action= "<?php echo $PHP_SELF ?>" method="post">
<input type="hidden" name="offsetHours" id="offsetHours" value="0">
</form>
<script type="text/javascript">
<!--
var currentdate = new Date();
var offsetHours = -currentdate.getTimezoneOffset()/60;
document.getElementById('offsetHours').value = offsetHours;
document.offsetHoursForm.submit();
//-->
</script>
<?php
}
?>
<br><br><br>
<a href="http://snippets.bluejon.co.uk/localtimezone/local-timezone-v1-phpcode.php">Display php source code </a>
</body>
</html>
<?php
ob_end_flush();
?>