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 tp验证表单与自动填充函数代码
Feb 22 PHP
优化PHP程序的方法小结
Feb 23 PHP
PHP获取搜索引擎关键字来源的函数(支持百度和谷歌等搜索引擎)
Oct 03 PHP
php修改指定文件后缀的方法
Sep 11 PHP
php实现webservice实例
Nov 06 PHP
php三元运算符知识汇总
Jul 02 PHP
php类常量用法实例分析
Jul 09 PHP
PHP MYSQL简易交互式站点开发
Dec 27 PHP
php生成条形码的图片的实例详解
Sep 13 PHP
php 获取xml接口数据的处理方法
May 31 PHP
微信推送功能实现方式图文详解
Jul 12 PHP
使用PHP+Redis实现延迟任务,实现自动取消订单功能
Nov 21 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全局变量和类配合使用深刻理解
2013/06/05 PHP
自己写的php中文截取函数mb_strlen和mb_substr
2015/02/09 PHP
php-fpm中max_children的配置
2019/03/15 PHP
js 颜色选择器(兼容firefox)
2009/03/05 Javascript
js判断输入是否为正整数、浮点数等数字的函数代码
2010/11/17 Javascript
用JS判断IE版本的代码 超管用!
2011/08/09 Javascript
jQuery中trigger()方法用法实例
2015/01/19 Javascript
百度地图自定义控件分享
2015/03/04 Javascript
简述JavaScript对传统文档对象模型的支持
2015/06/16 Javascript
JavaScript 对象深入学习总结(经典)
2015/09/29 Javascript
javascript实现input file上传图片预览效果
2015/12/31 Javascript
内容滑动切换效果jquery.hwSlide.js插件封装
2016/07/07 Javascript
利用n 升级工具升级Node.js版本及在mac环境下的坑
2017/02/15 Javascript
Bootstrap BootstrapDialog使用详解
2017/02/17 Javascript
jQuery.Sumoselect插件实现下拉复选框效果
2017/11/09 jQuery
vue + vuex todolist的实现示例代码
2018/03/09 Javascript
Vue 菜单栏点击切换单个class(高亮)的方法
2018/08/22 Javascript
vue-router两种模式区别及使用注意事项详解
2019/08/01 Javascript
[04:03]DOTA2英雄梦之声_第02期_风暴之灵
2014/06/30 DOTA
详解python发送各类邮件的主要方法
2016/12/22 Python
python僵尸进程产生的原因
2017/07/21 Python
Python实现对百度云的文件上传(实例讲解)
2017/10/21 Python
Python+matplotlib+numpy实现在不同平面的二维条形图
2018/01/02 Python
python实现堆和索引堆的代码示例
2018/03/19 Python
python中的内置函数max()和min()及mas()函数的高级用法
2018/03/29 Python
Python中BeautifuSoup库的用法使用详解
2019/11/15 Python
OpenCV+Python--RGB转HSI的实现
2019/11/27 Python
彪马法国官网:PUMA法国
2019/12/15 全球购物
医学生实习自荐信
2013/10/01 职场文书
酒店应聘自荐信
2013/11/09 职场文书
大学生标准推荐信范文
2013/11/25 职场文书
成功的餐厅经营创业计划书
2014/01/15 职场文书
小学英语课后反思
2014/04/26 职场文书
2014年教师教学工作总结
2014/11/08 职场文书
公务员个人年终总结
2015/02/12 职场文书
党小组意见范文
2015/06/08 职场文书