javascript - 如何使用 moment.js 在特定时区创建时间

标签 javascript timezone momentjs

我有这个后端,它在设定的时区向我发送预先格式化的时间,但没有关于所述时区的任何信息。字符串就像:“2013-08-26 16:55:00”。

我可以用这个字符串创建一个新的 moment.js 实例:

var time = moment("2013-08-26 16:55:00") //this creates time in my tz

但这只会在我自己的时区创建一个实例。

Moment.js 有一个插件,可以在特定时区创建对象的实例,效果很好,但我不能说我希望对象指向什么时间。

如果我在纽约并且我这样做:

var time = moment("2013-08-26 16:55:00").tz("America/Los_Angeles");

结果时间将是 13:55 而不是 16:55,但在洛杉矶。

我想要的是创建一个会说 16:55 的实例,但在洛杉矶时间。

我问的原因是因为我想这样做:

var now = moment.tz("America/Los_Angeles");
var end = moment("2013-08-26 16:55:00"); //plus something to convert LA time

var timeLeft = end.diff(now, "minutes");

有没有办法做到这一点?

最佳答案

在大多数情况下,您可以简单地这样做:

moment.tz("2013-08-26 16:55:00", "America/Los_Angeles")

如果您需要 ISO8601 以外的输入,则将格式字符串指定为第二个参数,将时区指定为第三个参数:
moment.tz("8/26/2013 4:55 pm", "M/D/YYYY h:mm a", "America/Los_Angeles")

如果你需要使用 moment 的“严格解析”模式,那么就进入第三个参数,时区移动到第四个位置:
moment.tz("8/26/2013 4:55 pm", "M/D/YYYY h:mm a", true, "America/Los_Angeles")

关于javascript - 如何使用 moment.js 在特定时区创建时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18448347/

相关文章:

java - Joda 时区与地区/城市解析

javascript - Moment JS比较小时和分钟

javascript - 使用 momentjs 计算到特定日期的天数

javascript - jQuery Mask 插件中的时间验证 24 小时格式

javascript - 属性文本呈现不存在 : optimizelegibility

java - Java 有朴素的时间戳吗?

javascript - 我在力矩和 Angular 过滤器方面遇到问题

javascript - 之间的正则表达式匹配文本

javascript - 为什么转换不适用于第一次点击事件?

php - Paypal 预批开始日期时区?