在跨时区应用中会用到下面代码,这是以前写的一段代码。

服务器保存相关时间配置,保存形式为GMT时间,客户端需要根据客户所在时区做相应显示,以符合客户习惯。 
​1. [代码][JavaScript]代码  http://www.huiyi8.com/ppt/​
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;http://www.huiyi8.com/ppt/​
        }
        
        var margin = 0;
        if (this.isEastEarthTime(date)) {
            margin = middle.getTimezoneOffset();
        } else {ppt素材
            margin = start.getTimezoneOffset();
        }
        if (date.getTimezoneOffset() == margin) {
            return true;
        }
        return false;
}
//DONE end
 
服务器端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);
}

根据用户时区显示当地时间 javascript+php的更多相关文章

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

    本文实例讲述了javascript+php实现根据用户时区显示当地时间的方法.分享给大家供大家参考.具体如下: 在跨时区应用中会用到下面代码,这是以前写的一段代码. 服务器保存相关时间配置,保存形式为 ...

  2. django时区设置以及全球用户如何各自显示当地时间

    在Django的配置文件settings.py中,有两个配置参数是跟时间与时区有关的,分别是TIME_ZONE和USE_TZ 如果USE_TZ设置为True时,Django会使用系统默认设置的时区,即 ...

  3. Spring MVC 学习笔记10 —— 实现简单的用户管理(4.3)用户登录显示全局异常信息

    </pre>Spring MVC 学习笔记10 -- 实现简单的用户管理(4.3)用户登录--显示全局异常信息<p></p><p></p>& ...

  4. Spring MVC 学习笔记9 —— 实现简单的用户管理(4)用户登录显示局部异常信息

    Spring MVC 学习笔记9 -- 实现简单的用户管理(4.2)用户登录--显示局部异常信息 第二部分:显示局部异常信息,而不是500错误页 1. 写一个方法,把UserException传进来. ...

  5. 用户登陆显示cpu、负载、内存信息

    #用户登陆显示cpu.负载.内存信息 #!/bin/bash # hostip=`ifconfig eth0 |awk -F" +|:" '/Bcast/{print $4}'` ...

  6. Adminimize 插件:WordPress根据用户角色显示/隐藏某些后台功能

    倡萌刚才分享了 WordPress根据用户角色隐藏文章/页面的功能模块(Meta Boxes),如果你还想根据不同用户角色显示或隐藏后台的某些功能,比如 顶部工具条.左边导航菜单.小工具.仪表盘.菜单 ...

  7. shell脚本,提示用户输入一个用户名,如果存在;显示用户UID和SHELL信息;否则,则显示无此用户;显示完成之后,提示用户再次输入;如果是quit则退出;

    [root@localhost wyb]# cat tishiuser.sh #!/bin/bash #提示用户输入一个用户名,如果存在:显示用户UID和SHELL信息:否则, #则显示无此用户:显示 ...

  8. (GoRails) 自动侦测用户的时区,使用javascript 的jszt库。

    传统方法见:http://www.cnblogs.com/chentianwei/p/9369904.html ⚠️: 两个方法最后都要有controller中的类似before_action :se ...

  9. 通过纯真IP地址实现根据用户地址显示信息

    为了实现中关村在线商品报价中通过用户的地理位置信息显示相应的报价. 示例地址:http://detail.zol.com.cn/lens/index224693.shtml 现把我做的使用asp.ne ...

随机推荐

  1. 【Tomcat】解决Tomcat catalina.out 不断成长导致档案过大的问题

    Tomcat的网站上的说法http://wiki.apache.org/tomcat/FAQ/Logging#Q6: System.out 和 System.err 都被打印到 catalina.ou ...

  2. LL(1)语法分析器 //c++实现

    #include<iostream> #include<string> #include<map> #include<vector> #include& ...

  3. 服务器Out of Memory

    之前有次把图片存储在数据库,结果读取时候报错了:Out of Memory.. 图片本来不应该存储在数据库中的,消耗内存太大,既然已经这样,那就先解决问题,不改存储方式. 如果一个应用程序为了提高性能 ...

  4. Go -- 一致性哈希算法

    一致性哈希算法在1997年由麻省理工学院的Karger等人在解决分布式Cache中提出的,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似.一致性哈希修正了CARP使用 ...

  5. Scala学习笔记 & 一些不错的学习材料 & 函数编程的历史八卦

    参考这篇文章: http://www.ibm.com/developerworks/cn/java/j-lo-funinscala1/ 这也是一个系列 严格意义上的编程范式分为:命令式编程(Imper ...

  6. linux shell操作

    ---------------------------------------------------- 原文:http://unix.stackexchange.com/questions/2863 ...

  7. 在 Edison 上自动启动 Arduino Sketch

    前言 原创文章,转载引用务必注明链接,水平有限,如有疏漏,欢迎指正. 本文使用Markdown写成,为获得更好的阅读体验和正常的链接.图片显示,请访问我的博客原文: http://www.cnblog ...

  8. weexpack build android 和 weexpack run android 报错 及 解决方案

    1. weexpack build android (1)Configuring > 0/3 projects > root project > Resolving dependen ...

  9. Ubuntu16.04安装openjdk-7-jdk

    ubuntu14.04 升级16.04后会默认将jdk1.7删除,因此需要重新安装. Ubuntu16.04 安装Oracle JDK 和 Open jdk 默认JDK 安装比较轻松,但根据项目调整 ...

  10. UI标签库专题二:JEECG智能开发平台Column(列) 子标签

    UI标签库专题二:JEECG智能开发平台Column(列) 子标签  1.1. Column(列) 子标签 1.1.1. 演示样例 <t:dgCol title="年龄" ...