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都像一个怪物。

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

  • 相关阅读:
    P4549 【模板】裴蜀定理
    POJ1606 Jugs
    2. 数据库连接池规范
    14. BootStrap * 组件
    BootStarpt
    13. Flex 弹性布局2 BootStrap
    12. Flex 弹性布局 BootStrap
    CSS3
    21. Servlet3.0 / 3.1 文件上传 Plus
    20. Servlet3.0 新特性
  • 原文地址:https://www.cnblogs.com/leftfist/p/4764256.html
Copyright © 2011-2022 走看看