Home >Backend Development >PHP Tutorial >JavaScript+php implements method of displaying local time according to user time zone_PHP tutorial
This article mainly introduces the method of javascript+php to implement the method of displaying the local time according to the user’s time zone. Example analysis of javascript acquisition The client time zone and the skills of interacting with server-side PHP have certain reference value. Friends in need can refer to it
The example in this article describes the method of javascript+php to display the local time according to the user's time zone. Share it with everyone for your reference. The details are as follows:
The following code will be used in cross-time zone applications. This is a piece of code written before.
The server saves the relevant time configuration in the form of GMT time. The client needs to display it accordingly according to the customer's time zone to comply with customer habits.
1. The JavaScript code is as follows:
?
|
window.onload = function() { //TODO begin Processing the logged in user time zone //Get the difference between the logged in user’s time zone and the GMT time zone var exp = new Date(); var gmtHours = -(exp.getTimezoneOffset()/60); setCookie('customer_timezone',gmtHours,1); //Determine whether it is daylight saving time date = exp.format('yyyy-MM-dd HH:mm:ss'); if(inDaylightTime(date)){ setCookie('inDaylightTime',1,1); } } //Set Cookie function setCookie(c_name,value,expiredays){ var exdate=new Date() exdate.setDate(exdate.getDate()+expiredays) document.cookie=c_name+ "=" +escape(value)+ ((expiredays==null) ? "" : "; expires="+exdate.toGMTString()) } //Determine whether the time is in the Eastern Hemisphere or the Western Hemisphere function isEastEarthTime(newDate) { var dj= newDate.getGMTOffset(false); if (dj.indexOf("-") == -1){ return true; } else { return false; } } //Whether it is daylight saving time function inDaylightTime(date){ var start = new Date(date.getTime()); start.setMonth(0); start.setDate(1); start.setHours(0); start.setMinutes(0); start.setSeconds(0); var middle = new Date(start.getTime()); middle.setMonth(6); // If the time difference between the beginning of the year and the middle of the year is the same, it is considered that this country does not have daylight saving time if ((middle.getTimezoneOffset() - start.getTimezoneOffset()) == 0) { return false; } var margin = 0; if (this.isEastEarthTime(date)) { margin = middle.getTimezoneOffset(); } else { margin = start.getTimezoneOffset(); } if (date.getTimezoneOffset() == margin) { return true; } return false; } //DONE end |
2. Server-side php code:
?
3 4 513 14
15
16
17
18
19
20
21
22
23
24
|
//Conversion from GMT to local time within 24 hours function gmt_to_local($time = '', $dst = FALSE){ //JavaScript sets Cookie, PHP takes value if (isset($_COOKIE["customer_timezone"])){ $timezone = $_COOKIE["customer_timezone"]; }else{ $timezone = 0; } if ($time == ''){ return now(); } //Time processing $time += $timezone * 3600; //Whether it is daylight saving time if(isset($_COOKIE["inDaylightTime"]) && $_COOKIE["inDaylightTime"]==1) { $dst = TRUE; } if ($dst == TRUE){ $time += 3600; } return date("H:i",$time); } |