非诚勿扰20101204,一周立波秀2013,欧美色就是色
本文实例讲述了javascript+php实现根据用户时区显示当地时间的方法。分享给大家供大家参考。具体如下:
在跨时区应用中会用到下面代码,这是以前写的一段代码。
服务器保存相关时间配置,保存形式为gmt时间,客户端需要根据客户所在时区做相应显示,以符合客户习惯。
1. javascript代码如下:
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
2. 服务器端php代码:
//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); }
希望本文所述对大家的php程序设计有所帮助。
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
YII2框架中使用RBAC对模块,控制器,方法的权限控制及规则的使用示例
YII2框架中ActiveDataProvider与GridView的配合使用操作示例
PhpStorm的使用教程(本地运行PHP+远程开发+快捷键)
网友评论