我正在使用以下代码获取特定时区的GMT差异:
var TimeZone = 'America/New_York';
console.log('GMT Offset ' + moment().tz(TimeZone).utcOffset().toString());
此代码还会考虑DST吗?
答案 0 :(得分:3)
是的,moment.tz()
知道夏令时。 docs对此是明确的:
moment.tz
构造函数采用与矩构造函数相同的所有参数,但将最后一个参数用作time zone identifier。
...
该构造函数具有DST意识,并且在解析时将使用正确的偏移量。
var TimeZone = 'America/New_York';
console.log('Winter GMT Offset ' + moment.tz('2018-12-04', TimeZone).utcOffset()/60);
console.log('Summer GMT Offset ' + moment.tz('2018-06-04', TimeZone).utcOffset()/60);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.23/moment-timezone-with-data-2012-2022.min.js"></script>