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下10件你也许并不了解的事情
Sep 11 PHP
php数组一对一替换实现代码
Aug 31 PHP
用PHP实现弹出消息提示框的两种方法
Dec 17 PHP
PHP文件缓存内容保存格式实例分析
Aug 20 PHP
ThinkPHP中pathinfo的访问模式、路径访问模式及URL重写总结
Aug 23 PHP
ThinkPHP基于PHPExcel导入Excel文件的方法
Oct 15 PHP
PHP之密码加密的几种方式
Jul 29 PHP
Laravel Memcached缓存驱动的配置与应用方法分析
Oct 08 PHP
php 判断过去离现在几年的函数(实例代码)
Nov 15 PHP
Yii核心验证器api详解
Nov 23 PHP
php获取数据库结果集方法(推荐)
Jun 01 PHP
浅谈使用 Yii2 AssetBundle 中 $publishOptions 的正确姿势
Nov 08 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
DC《神奇女侠2》因疫情推迟上映 温子仁新恐怖片《恶性》撤档
2020/04/09 欧美动漫
Breeze 文章管理系统 v1.0.0正式发布
2006/12/14 PHP
php 正则匹配函数体
2009/08/25 PHP
thinkphp 字母函数详解T/I/N/D/M/A/R/U
2017/04/03 PHP
Yii框架日志操作图文与实例详解
2019/09/09 PHP
PJ Blog修改-禁止复制的代码和方法
2006/10/25 Javascript
Javascript 陷阱 window全局对象
2008/11/26 Javascript
在IE上直接编辑网页内容的js代码(IE地址栏js)
2009/04/27 Javascript
js实现页面打印功能实例代码(附去页眉页脚功能代码)
2009/12/15 Javascript
js日期相关函数总结分享
2013/10/15 Javascript
js判断上传文件类型判断FileUpload文件类型代码
2014/05/20 Javascript
JQuery中模拟image的ajaxPrefilter与ajaxTransport处理
2015/06/19 Javascript
Bootstrap列表组学习使用
2017/02/09 Javascript
深入理解Angular4中的依赖注入
2017/06/07 Javascript
基于JS递归函数细化认识及实用实例(推荐)
2017/08/07 Javascript
JS实现手写parseInt的方法示例
2017/09/24 Javascript
Three.js实现简单3D房间布局
2018/12/30 Javascript
Node.js net模块功能及事件监听用法分析
2019/01/05 Javascript
vue多次循环操作示例
2019/02/08 Javascript
[01:10]DOTA2次级职业联赛 - Fly战队宣传片
2014/12/01 DOTA
[52:36]VGJ.S vs Serenity 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python检查URL是否正常访问的小技巧
2017/02/25 Python
Pytorch实现各种2d卷积示例
2019/12/30 Python
Python性能分析工具py-spy原理用法解析
2020/07/27 Python
python实现计算图形面积
2021/02/22 Python
css3设置box-pack和box-align让div里面的元素垂直居中
2014/09/01 HTML / CSS
html5的canvas实现3d雪花飘舞效果
2013/12/27 HTML / CSS
先进事迹报告会感言
2014/01/24 职场文书
《会变的花树叶》教学反思
2014/02/10 职场文书
孝敬父母的活动方案
2014/08/31 职场文书
刑事上诉状(无罪)
2015/05/23 职场文书
环保守法证明
2015/06/24 职场文书
2016毕业实习单位评语大全
2015/12/01 职场文书
Python入门之使用pandas分析excel数据
2021/05/12 Python
一文弄懂MySQL索引创建原则
2022/02/28 MySQL
Li list-style-image 图片垂直居中实现方法
2023/05/21 HTML / CSS