比较一个时区和另一个时区的日期

Compare dates from one timezone with dates from another timezone

本文关键字:时区 另一个 日期 一个 比较      更新时间:2023-09-26

我有一个MySQL数据库,运行在America/New_York和一个节点服务器上运行在UTC。我需要从节点和比较时间运行对MySQL数据库的查询。时间比较非常接近,所以我需要做一个时区转换。

注意:这是一个由第三方控制的Wordpress数据库;我不能以任何方式ALTER数据库。

目前,我正在做这个:

comparisonDate = new Date((new Date).setHours(new Date().getHours() - 4)));

从节点服务器的UTC日期中减去4小时来与MySQL进行比较。

这工作得很好,但我担心夏令时后会发生什么。我宁愿做转换(我可以保证我提前知道MySQL服务器的时区)。

moment-timezone似乎有希望,但当我做

moment.tz('America/New_York').toDate()

我得到的日期仍然是UTC时间,而不是EST/EDT时间。

如何在JavaScript中始终如一地进行适当的时区转换?

我遇到了同样的时区转换问题。

我这样做了,它工作得很好。

var moment = require('moment');
var timezone = require('moment-timezone');
var now = timezone(moment()).tz("America/New_York"); 

这里now变量给出了America/New_York的时间。

在夏令时之后,moment-timezone会处理这个问题。

在moment-timezone中,他们有Parsing Ambiguities部分来解释这个场景。

这可能对你有用。

date_default_timezone_set("America/Los_Angeles");

使用这个PHP函数可以设置默认时区