【发布时间】:2016-05-20 03:33:05
【问题描述】:
我一直在尝试寻找一个库或 JavaScript 解决方案来匹配美国一年中不同时间的时间。
问题在于新闻机构发布文章并更新它们。 文章可以在 6 月发表,然后在 12 月以任何理由更新。
他们坚持认为在他们的时代结束时需要 EST 和 EDT,但在案例不匹配时不喜欢它。
到目前为止,我已经尝试过 js 和 moment 时区(下面也有输出):
var a = moment("2015-06-04T15:09:06Z");
var b = moment("2015-12-03T16:09:07Z");
a.tz(moment.tz.guess()).format('dddd, MMMM Do YYYY, h:mm a z');
// "Thursday, June 4th 2015, 11:09 am EDT"
b.tz(moment.tz.guess()).format('dddd, MMMM Do YYYY, h:mm a z');
// "Thursday, December 3rd 2015, 11:09 am EST”
您可以看到输出的结尾不匹配(EDT 和 EST)。由于现在是 ST,他们都想用 EST 或 CST 等表示正确的时间。当是夏令时时,他们希望它用 EDT、CDT、PDT 等表示正确的时间。
我也尝试用 JS 编写解决方案,但长话短说,我必须使用 renderDate 函数来放置某人很久以前创建的日期,并且使用 document.write 当然会擦除这页纸。我会尽量避免这种情况。
不过,时间已经以 moment.js 格式提供给我,即 2015-06-04T15:09:06Z,所以我想我可以通过新的时区插件找到一种方法。
【问题讨论】:
-
不清楚你在问什么。如果它们在一年中的不同时间使用,为什么它们会有相同的缩写?我看不出你的代码有什么问题。
-
如果只是他们不喜欢它,那对他们来说太糟糕了。这就是时区的运作方式。
-
这就是我的感觉,但高层管理人员并不这么认为。客户想要的是如果现在是标准时间,那么不是的时间被转换为匹配。这似乎不值得麻烦。我说这是夏令时,所以应该这样报告。我无法动摇任何想法,因此我必须找到答案。
-
这与一个人的感受无关。这是关于什么是正确的,什么是不正确的。我可能觉得我希望 1+2 等于 4,但事实并非如此。听起来你的工作是让“上层管理人员”了解时区的实际运作方式。我可以建议:codeofmatt.com/2014/04/27/time-zone-abbreviations 和 codeofmatt.com/2015/02/07/what-is-a-time-zone
-
更改中间字母不会在全球范围内起作用。想想伦敦,它的缩写是 GMT/BST,和法国,它的缩写是 CET/CEST(以及无数其他的)。
标签: javascript jquery datetime timezone momentjs