Javascript 伦敦时间(英国夏令时)

Javascript 伦敦时间(英国夏令时),javascript,datetime,momentjs,Javascript,Datetime,Momentjs,我正在使用momentjs库更新一些ajax操作的文本。我需要做的是在伦敦设置一个当前日期和时间。我使用的是moment.utc()函数,但由于夏天的原因,我要休息一个小时 例如,在14:26运行此命令 console.log( moment.utc().format('HH:mm:ss') ); 我得到13:26:53分 你知道如何解决这个问题吗?如果你想要本地时间而不是UTC时间,只需使用moment()而不是moment.UTC()。您特别要求UTC,因此当您获得UTC时,不应感到惊讶:

我正在使用momentjs库更新一些ajax操作的文本。我需要做的是在伦敦设置一个当前日期和时间。我使用的是moment.utc()函数,但由于夏天的原因,我要休息一个小时

例如,在14:26运行此命令

console.log( moment.utc().format('HH:mm:ss') );
我得到13:26:53分


你知道如何解决这个问题吗?

如果你想要本地时间而不是UTC时间,只需使用
moment()
而不是
moment.UTC()
。您特别要求UTC,因此当您获得UTC时,不应感到惊讶:)

从文件中:

默认情况下,力矩以本地时间解析和显示

如果要以UTC格式解析或显示某个时刻,可以使用
moment.UTC()
而不是
moment()

这给我们带来了Moment.js的一个有趣特性。UTC模式

在UTC模式下,所有显示方法将以UTC时间而不是本地时间显示

这是假设您总是想要用户的本地时间。如果您想要一个特定的时区(伦敦),它可能不是用户的时区,也不是UTC,那么您应该使用Takuya的答案所指示的库。不过,在这样做之前,我会仔细考虑——虽然这可能是一种明智的方法,但至少你应该先验证一下。在用户U2的时区中显示用户U1的时间通常是合理的,但这里使用的是固定时区。只有当你知道U2将永远在伦敦时,这才合适。如果U2真的在另一个区域,或者与U1相同,或者不同,这会让人很困惑。

你能用它吗

moment().tz(“欧洲/伦敦”)


编辑:如果您试图在没有看到链接的情况下使用此库,则必须包含一个单独的库。

如果您想要本地时间,为什么要使用
utc()
?当然,它的行为完全符合预期……我不想要当地时间,而是伦敦时间,不管用户在哪里?我会说,这会给你一个相当奇怪的经历——但Takuya的回答应该涵盖了你。您能解释一下为什么要这样做吗?矩()的问题是它使用用户计算机上的本地时间,例如,如果用户不在伦敦,或者设备上的时区设置错误,它将无法正常工作。@Takuya:是的,我假设OP想要用户的本地时间-如果他们总是想要伦敦时间而不管用户的时区,那么使用欧洲/伦敦是有意义的。。。虽然这是一个非常奇怪的设计决定。是的,也许奇怪,但我们不知道用例。顺便说一句,我认为除了用户自己的本地时区之外,还有很多使用时区的好例子。例如,考虑呼叫中心UI,其中操作员在屏幕上和调用日志中查看调用方的本地时间。还可以考虑一个简单的脚本,显示业务站点当前是否在其网站上打开或关闭。即使用户在世界的另一边,他们也会希望将营业时间与该业务的本地时区进行比较。我相信还有很多其他的用例。@MattJohnson:没错,但这些都是关于其他人的时区,而不是另一个固定的时区。我想如果你假设你所有的来电者都来自英国,这是有道理的。我仍然希望OP能提供更多的背景信息——这可能是合适的,但可能不是。。。把我的答案编辑得不那么直截了当:)如何获得PST时间?我尝试了这个
var dec=moment();const pst=moment.tz('America/Los_Angeles')。格式('YYYY-MM-DD hh:MM a z');console.log(pst)
它始终提供PDT时间。有什么建议吗?@shanmugharaj我相信你必须给它一个在PST范围内的开始时间。例如:矩.tz([2012,0],'America/Los_Angeles')。格式('zz');//PST moment.tz([2012,5],“美国/洛杉矶”)。格式('zz');//PDT见: