Get timezone difference in hours with moment

梦想与她 提交于 2019-11-28 03:05:43

问题


I would like to get the timezone difference between New York and Hong Kong with Node.js moment module. I have done some preliminary work.

var NewYork_time_hr = moment().tz("America/New_York").format('HH'); 
var HongKong_time_hr = moment().tz("Asia/Hong_Kong").format('HH');

I can then proceed to write a function to calculate the difference between the 2 timezones in hours. I was hoping for a simpler method.

Is there a more elegant and simpler way to do it with moment library?


回答1:


Not sure about "simpler", but more correct (since not all timezones are a full hour from each other):

// get the current time so we know which offset to take (DST is such bullkitten)
var now = moment.utc();
// get the zone offsets for this time, in minutes
var NewYork_tz_offset = moment.tz.zone("America/New_York").offset(now); 
var HongKong_tz_offset = moment.tz.zone("Asia/Hong_Kong").offset(now);
// calculate the difference in hours
console.log((NewYork_tz_offset - HongKong_tz_offset) / 60);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.6/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.4.1/moment-timezone-with-data-2010-2020.min.js"></script>


来源:https://stackoverflow.com/questions/33684748/get-timezone-difference-in-hours-with-moment

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!