javascript+php根据用户时区显示当地时间的实现方法
内容摘要
这篇文章主要为大家详细介绍了javascript+php根据用户时区显示当地时间的实现方法,具有一定的参考价值,可以用来参考一下。
感兴趣的小伙伴,下面一起跟随php教程的小玲来看看
感兴趣的小伙伴,下面一起跟随php教程的小玲来看看
文章正文
这篇文章主要为大家详细介绍了javascript+php根据用户时区显示当地时间的实现方法,具有一定的参考价值,可以用来参考一下。
感兴趣的小伙伴,下面一起跟随php教程的小玲来看看吧!
本文实例讲述了javascript+php实现根据用户时区显示当地时间的方法。分享给大家供大家参考。具体如下:
在跨时区应用中会用到下面代码,这是以前写的一段代码。
服务器保存相关时间配置,保存形式为GMT时间,客户端需要根据客户所在时区做相应显示,以符合客户习惯。
1. JavaScript代码如下:
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 57 | <code class = "language-php" > // php教程 www.idcnote.com 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</code> |
2. 服务器端php代码:
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 | <code class = "language-php" > //24小时内 GMT到本地时间的转换 // php教程 www.idcnote.com 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 ); }</code> |
javascript+php实现根据用户时区显示当地时间的方法
注:关于javascript+php根据用户时区显示当地时间的实现方法的内容就先介绍到这里,更多相关文章的可以留意
代码注释