• javascript的Date时差


    当有日期字符串形如:

    var dt = "2015-03-16T23:59:59";//注意其中有个T,这是什么表示法?不清楚,可能是GMT标准时

    然后转换成日期对象,系统会自动加上时差。

    var value = "2015-03-16T15:03:00";
    var dt;
    if (value instanceof Date) {
        dt = value;
    } else {
        dt = new Date(value);
    }
    alert(dt);

    结果显示 dt 为:

    Mon Mar 16 2015 23:03:00 GMT+0800 (中国标准时间)

    已经不再是15时,而是自动加上了8小时,变成23时。(中国时区与格林威治时间相差8小时)。


    在实际应用中,有时候会造成误解。比如一个时间从数据库中拿出来在前端显示,小时数可能大于16时,那么加上时区后,就会变成了第二天!

    这个时候要考虑时区的因素。要么保存到数据库时,换成标准时;要么显示时,消除时区的影响。

    dt.setHours(dt.getHours() + dt.getTimezoneOffset() / 60);//消除时差影响


    如果字符串是“2015-03-16 15:03:00”这种形式,则不受时差影响。


    另外,new Date(value)这种写法IE似乎不支持。无论从哪方面看,IE都像一个怪物。

    版权声明:本文为博主原屙文章,喜欢你就担走。

  • 相关阅读:
    分布式架构总汇【转】
    spring注解
    lombok安装和使用
    dubbo配置
    关于dubbo的负载均衡
    maven工作的过程
    android基础---->子线程更新UI
    JavaScript中有时候需要获取当前的时间戳
    Ubuntu 安装mysql
    nodejs 语法很特别的地方
  • 原文地址:https://www.cnblogs.com/leftfist/p/4764256.html
Copyright © 2020-2023  润新知