zoukankan      html  css  js  c++  java
  • 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都像一个怪物。

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

  • 相关阅读:
    Oracle Sql优化之日期的处理
    python excel转xml
    3、vue项目里引入jquery和bootstrap
    1、vue.js开发环境搭建
    2、vue-router2使用
    go 初步
    一个全局变量引起的DLL崩溃
    在linux用gdb查看stl中的数据结构
    gdb看core常用命令
    redis常用命令
  • 原文地址:https://www.cnblogs.com/leftfist/p/4764256.html
Copyright © 2011-2022 走看看