javascript+php实现根据用户时区显示当地时间的方法


Posted in PHP onMarch 11, 2015

本文实例讲述了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程序设计有所帮助。

PHP 相关文章推荐
《PHP边学边教》(02.Apache+PHP环境配置――上篇)
Dec 13 PHP
PHP 开发环境配置(Zend Server安装)
Apr 28 PHP
php带密码功能并下载远程文件保存本地指定目录 修改加强版
May 16 PHP
php设计模式 Factory(工厂模式)
Jun 26 PHP
phpMyAdmin 链接表的附加功能尚未激活问题的解决方法(已测)
Mar 27 PHP
PHP反射类ReflectionClass和ReflectionObject的使用方法
Nov 13 PHP
PHP类中的魔术方法(Magic Method)简明总结
Jul 08 PHP
php获取本机真实IP地址实例代码
Mar 31 PHP
yii2.0实现创建简单widgets示例
Jul 18 PHP
php实现留言板功能(代码详解)
Mar 28 PHP
PHP分享图片的生成方法
Apr 25 PHP
php实现的表单验证类完整示例
Aug 13 PHP
PHP读取txt文本文件并分页显示的方法
Mar 11 #PHP
php中有关合并某一字段键值相同的数组合并的改进
Mar 10 #PHP
php模拟服务器实现autoindex效果的方法
Mar 10 #PHP
php浏览历史记录的方法
Mar 10 #PHP
php实现cookie加密的方法
Mar 10 #PHP
php遍历目录方法小结
Mar 10 #PHP
PHP树的深度编历生成迷宫及A*自动寻路算法实例分析
Mar 10 #PHP
You might like
PHP 二维数组根据某个字段排序的具体实现
2014/06/03 PHP
PHP基于php_imagick_st-Q8.dll实现JPG合成GIF图片的方法
2014/07/11 PHP
phpmyadmin提示The mbstring extension is missing的解决方法
2014/12/17 PHP
php计算给定时间之前的函数用法实例
2015/04/03 PHP
PHP实现微信模拟登陆并给用户发送消息的方法【文字,图片,图文】
2017/06/29 PHP
JS宝典学习笔记(下)
2007/01/10 Javascript
javascript函数重载解决方案分享
2014/02/19 Javascript
一个简单的jquery进度条示例
2014/04/28 Javascript
将HTML的左右尖括号等转义成实体形式的两种实现方式
2014/05/04 Javascript
老生常谈onBlur事件与onfocus事件(js)
2016/07/09 Javascript
Node.js数据库操作之查询MySQL数据库(二)
2017/03/04 Javascript
ES6下React组件的写法示例代码
2017/05/04 Javascript
jQuery选择器特殊字符与属性空格问题
2017/08/14 jQuery
vue使用element-ui的el-input监听不了回车事件的解决方法
2018/01/12 Javascript
vue中动态绑定表单元素的属性方法
2018/02/23 Javascript
深入浅析Vue 中 ref 的使用
2019/04/29 Javascript
JQuery获得内容和属性方法解析
2020/05/30 jQuery
[01:09:50]VP vs Pain 2018国际邀请赛小组赛BO2 第二场
2018/08/20 DOTA
[37:45]完美世界DOTA2联赛PWL S3 LBZS vs Phoenix 第二场 12.09
2020/12/11 DOTA
在PyCharm环境中使用Jupyter Notebook的两种方法总结
2018/05/24 Python
详解django实现自定义manage命令的扩展
2019/08/13 Python
python matplotlib饼状图参数及用法解析
2019/11/04 Python
Python3 Click模块的使用方法详解
2020/02/12 Python
html5使用canvas实现跟随光标跳动的火焰效果
2014/01/07 HTML / CSS
HTML5 Canvas实现360度全景图的示例代码
2018/01/29 HTML / CSS
ECCO爱步加拿大官网:北欧丹麦鞋履及皮具品牌
2017/07/08 全球购物
法国在线购买汽车轮胎网站:123pneus.fr
2019/02/25 全球购物
历史教育专业个人求职信
2013/12/13 职场文书
酒店办公室文员岗位职责
2013/12/18 职场文书
公务员综合考察材料
2014/02/01 职场文书
颁奖晚会主持词
2014/03/25 职场文书
计算机售后服务承诺书
2014/05/30 职场文书
2015社区六五普法工作总结
2015/04/21 职场文书
入党积极分子群众意见
2015/06/01 职场文书
教师学习中国梦心得体会
2016/01/05 职场文书
导游词之河北野三坡
2019/12/11 职场文书