我有这个后端,它在设定的时区向我发送预先格式化的时间,但没有关于所述时区的任何信息。字符串就像:“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/