javascript - 使用 Moment Timezone 格式化指定时区的日期

标签 javascript date timezone momentjs dst

如果您将时区更改为 (UTC-07:00) 山地时间并运行下面的代码,您可以看到我正在讨论的问题。

var a = moment('2009-11-01T06:00:00Z').tz('US/Mountain').format();
var b = moment('2009-11-01T06:00:00Z').tz('US/Mountain').format('YYYY-MM-DD HH:mm');
var c = moment('2009-10-31T23:00:00-07:00').format('YYYY-MM-DD HH:mm');

document.getElementById("a").innerHTML = "#1: " + a;
document.getElementById("b").innerHTML = "#2: " + b;
document.getElementById("c").innerHTML = "#3: " + c;
<script src="http://momentjs.com/downloads/moment.min.js"></script>
<script src="http://momentjs.com/downloads/moment-timezone-with-data-2010-2020.min.js"></script>
<div id="a"></div>
<div id="b"></div>
<div id="c"></div>

运行上面的代码 (#1) 生成的日期偏移是正确的。但是,格式化它时是否不应将值更改为“2009-11-01 00:00”(#3) 而不是“2009-10-31 23:00”(#2)?

格式化程序似乎只是删除了偏移量,而不是在生成格式化日期时将其考虑在内。这是一个错误还是我在这里做错了什么?

最佳答案

您使用的 moment-timezone-with-data-2010-2020.min.js 年份为 2009 年。您应该将 Moment Timezone 更改为 moment-timezone-with-data.min .js。请参阅工作代码片段:

var a = moment('2009-11-01T06:00:00Z').tz('US/Mountain').format();
var b = moment('2009-11-01T06:00:00Z').tz('US/Mountain').format('YYYY-MM-DD HH:mm');
var c = moment('2009-10-31T23:00:00-07:00').format('YYYY-MM-DD HH:mm');

document.getElementById("a").innerHTML = "#1: " + a;
document.getElementById("b").innerHTML = "#2: " + b;
document.getElementById("c").innerHTML = "#3: " + c;
<script src="http://momentjs.com/downloads/moment.min.js"></script>
<script src="http://momentjs.com/downloads/moment-timezone-with-data.min.js"></script>
<div id="a"></div>
<div id="b"></div>
<div id="c"></div>

关于javascript - 使用 Moment Timezone 格式化指定时区的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36294230/

相关文章:

javascript - 如何在每个特定间隔 "Javascript"处用零递增 url?

javascript - Renderer2 在使用 d3 js 时不呈现 SVG 元素 - Angular 4

将日期 yyyy/mm/dd 转换为 dd/mm/yy 的 Javascript 函数

javascript - 如果 Iframe 无法加载 Angular 中 src 处的资源,如何显示替代文本

javascript - 如何在 WebStorm 中运行 JavaScript

C# lists - 排序日期问题

java - 像时区一样用 "America/New_York"解析日期

php - 如何在 PHP 中获取本地时区?

r - 如何更改R中的默认时区?

javascript - Moment.js - 在世界任何地方,使用相同的时区