此代码比较2个时间-当前时间和截止时间。

// Get current date/time
var now = new Date();

// Set up deadline date/time
var deadline = new Date(); //deadline is 1830hrs;
deadline.setHours(18);
deadline.setMinutes(30);

// Check if the current time is after the deadline
if( now > deadline ) {
    console.log('after deadline');
}
else {
    console.log('before deadline');
}


它可以在我的本地计算机上,其中nowdeadline处于同一时区。如果代码在now时区与要比较的deadline时区不同的服务器上运行怎么办?当now可以是任何时区并且deadline处于亚洲/香港时区时,该如何处理?

编辑:创建deadline时是否有某种方法可以指定时区?我认为这是一个可能的解决方案。

最佳答案

当您在JS中创建两个客户端时,都不会出现这种情况。因为这两个时间都会从同一个客户端读取时间。

但是,无论如何,如果任何时间来自位于另一个时区的服务器(当然是字符串形式),而客户端位于另一个时区,则有可能发生这种情况。

现在您的方法是将两个日期都转换为特定的时区(任意)。
然后进行比较。

您可以使用This库在JS中转换时区。
并从This Thread获得帮助。

07-28 12:52