Home >Backend Development >PHP Tutorial >JavaScript+php implements method of displaying local time according to user time zone_PHP tutorial

JavaScript+php implements method of displaying local time according to user time zone_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 10:03:54822browse

javascript+php implements the method of displaying local time according to the user’s time zone

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:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

window.onload = function() {

//TODO begin 处理登陆用户时区

//获得登陆用户时区与GMT时区的差值

var exp = new Date();

var gmtHours = -(exp.getTimezoneOffset()/60);

setCookie('customer_timezone',gmtHours,1);

//判断是否为夏令时

date = exp.format('yyyy-MM-dd HH:mm:ss');

if(inDaylightTime(date)){

setCookie('inDaylightTime',1,1);

}

}

//设置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())

}

//判断时间是东半球还是西半球

function isEastEarthTime(newDate)

{

var dj= newDate.getGMTOffset(false);

if (dj.indexOf("-") == -1){

return true;

} else {

return false;

}

}

//是否是夏令时

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 ((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

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
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:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

//24小时内 GMT到本地时间的转换

function gmt_to_local($time = '', $dst = FALSE){

//JavaScript设置Cookie,PHP取值

if (isset($_COOKIE["customer_timezone"])){

$timezone = $_COOKIE["customer_timezone"];

}else{

$timezone = 0;

}

if ($time == ''){

return now();

}

//时间处理

$time += $timezone * 3600;

 

//是否为夏令时

if(isset($_COOKIE["inDaylightTime"]) && $_COOKIE["inDaylightTime"]==1)

{

$dst = TRUE;

}

if ($dst == TRUE){

$time += 3600;

}

return date("H:i",$time);

}

1 2

3

4 5

67 8 9 10 11 12
13
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); }
I hope this article will be helpful to everyone’s PHP programming design. http://www.bkjia.com/PHPjc/966930.htmlwww.bkjia.comtruehttp: //www.bkjia.com/PHPjc/966930.htmlTechArticlejavascript+php implements the method of displaying the local time according to the user’s time zone. This article mainly introduces the method of javascript+php implementing the local time according to the user’s time zone. How to display local time in time zone, example analysis javascript...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn