代码之家  ›  专栏  ›  技术社区  ›  Chuck Le Butt

ISO转换后JavaScript时间滞后一小时

  •  0
  • Chuck Le Butt  · 技术社区  · 10 年前

    我在JavaScript中创建了一个新的日期,时间正确,但在使用 toISOString() 要转换它,需要一个小时。为什么会这样?

    https://jsfiddle.net/73nfyxeL/

    var createdDateTime = new Date('2015-04-01 11:53:00');
    var isoCreatedDateTime = "";
    
    alert(createdDateTime);
    isoCreatedDateTime = createdDateTime.toISOString().match(/(\d{4}\-\d{2}\-\d{2})T(\d{2}:\d{2}:\d{2})/);
    alert(isoCreatedDateTime[1] + ' ' + isoCreatedDateTime[2]);
    createdDateTime.setMinutes(createdDateTime.getMinutes() + 1);
    

    据我所知,这应该不会受到当地时间(如夏时制)的影响,因为我给它的是一个预设时间,而不是时区。发生什么事?

    1 回复  |  直到 10 年前
        1
  •  2
  •   Guffa    10 年前

    这个 toISOString method 不只是格式化日期,而是首先将其转换为UTC。

    当地时区与UTC之间的时差为一小时。