• 根据用户时区显示当地时间 javascript+php


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

    服务器保存相关时间配置,保存形式为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);
    }

  • 相关阅读:
    iptables允许FTP
    FTP服务添加用户及设置权限
    Python之异步IO&RabbitMQ&Redis
    Python之生产者&、消费者模型
    如何使用Git上传项目代码到github
    11-3 基于cookie和session的登录模块
    11-1 会话控制cookie
    11-2 会话控制session
    10-4 文件的下载
    10-3 文件的上传
  • 原文地址:https://www.cnblogs.com/xkzy/p/3865807.html
Copyright © 2020-2023  润新知