zoukankan      html  css  js  c++  java
  • JS 中获取服务器时间的注意点

    在通过js获取服务器时间时,遇到了小小的问题,但造成的影响挺大的,所以写出来提醒大家,在获取服务器时间时一定要细心要多测试多验证。

    js 中使用以下方法获取服务器时间时要注意两点:

    1.xhr.open()方法中,中间的路径最好不要写 “” 或  "/",如果写空,在部分谷歌下获取时间会有问题,所以最好给一个具体的URL。

    2.该获取时间方法,可以正确获取服务器时间,若服务器改时区后,此处获取的依然是服务器北京时区下应该显示的时间。

        而本机电脑获取服务器时间后,也会将该时间转换为本机电脑上时区应该显示的问题。

        所以本地改时区后,会将服务器时间改为本地时区对应的时间,这一点一定要注意!!!!!!!!!!!

    可以将获取到的时间统一更改为北京时区时间,或直接改为从后台获取。

    这两个方法也是从其他文章中摘抄的,希望大神能原谅~~~~~~~~~~~~~~~~~~~~

    //获取服务器时间

    function getServerDate(){

    var xhr = null;

    if(window.XMLHttpRequest){

    xhr = new window.XMLHttpRequest();

    }else{ // ie

    xhr = new ActiveObject("Microsoft")

    }

    xhr.open("GET", "<%=basePath%>user/toupdpwd?id=26",false)//false不可变

    xhr.send(null);

    var date = xhr.getResponseHeader("Date");

    //转为北京时区时间

    //return getBeiJingTime(date)

    return new Date(date);

    }

    //将时间转为北京时区时间

    function getBeiJingTime(date) {

    var d = new Date(date);

    var timezone = 8; //目标时区时间,东八区

    var offset_GMT = d.getTimezoneOffset(); // 本地时间和格林威治的时间差,单位为分钟

    var nowDate = d.getTime(); // 本地时间距 1970 年 1 月 1 日午夜(GMT 时间)之间的毫秒数

    var targetDate = new Date(nowDate + offset_GMT * 60 * 1000 + timezone * 60 * 60 * 1000);

    console.log("东8区现在是:" + targetDate);

    return targetDate;

    }
    ————————————————
    版权声明:本文为CSDN博主「yezi_huan」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/yezi_yanyuhuan/article/details/96769160

    JavaScript获取当前时区:

    new Date().getTimezoneOffset()
    这样获取到的是与0时区的时间差(0时区减去当前所在时区,单位是分钟)
    中国标准时间是以东八区为准,比0时区的时间要早8个小时,所以是-480,除以60就是所在时区
    时间字符串转成毫秒时,如果我们不加时区,则系统会默认把当前时区加上,也可自定义时区来转换
    (也可先转成毫秒,再加上时间差,再转成时间字符串,这样明显要麻烦多了)

     

    ————————————————
    版权声明:本文为CSDN博主「password-u」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/u013992330/article/details/78625855

    第一种:
            $.ajax({
                type:"OPTIONS",
                url:"/",
                complete:function(x){
                    var date = x.getResponseHeader("Date");
                    date = new Date(date);
                }
            });
    
    结果:Mon Oct 23 2017 17:26:59 GMT+0800 (中国标准时间)
    
    第二种:
            function getNowDate(){
                var xhr = null;
                if(window.XMLHttpRequest){
                    xhr = new window.XMLHttpRequest();
                }else{
                    xhr = new ActiveObject("Microsoft")
                }
    
                xhr.open("GET","/",false);
                xhr.send(null);
                var date = xhr.getResponseHeader("Date");
                date = new Date(date);
                return date;
            }
    结果:Mon Oct 23 2017 17:26:59 GMT+0800 (中国标准时间)

    原文地址:https://www.cnblogs.com/yexiaocangji/p/7717811.html

    依赖jQuery

    代码:

    function getServerDate(){
        return new Date($.ajax({async: false}).getResponseHeader("Date"));
    }
  • 相关阅读:
    结合P2P软件使用Ansible分发大文件
    Centos7 上安装 FastDFS
    go在centos配置以及go mod配置
    代理
    笔记本安装ubuntu18.08,解决过程中出现的各种问题
    CentOS7设置自定义开机启动脚本,添加自定义系统服务
    gitlab忘记密码找回
    zabbix配置短信报警
    将博客搬至CSDN
    RT-Thread-stm32f769-qspi-flash移植
  • 原文地址:https://www.cnblogs.com/it-deepinmind/p/12029274.html
Copyright © 2011-2022 走看看