पल

2015-11-13 9 views
8

के साथ घंटों में टाइमज़ोन अंतर प्राप्त करें मैं न्यू यॉर्क और हांगकांग के बीच नोड.जेएस पल मॉड्यूल के साथ टाइमज़ोन अंतर प्राप्त करना चाहता हूं। मैंने कुछ प्रारंभिक काम किया है।पल

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

मैं फिर समय में 2 टाइमज़ोन के बीच अंतर की गणना करने के लिए एक फ़ंक्शन लिखने के लिए आगे बढ़ सकता हूं। मैं एक आसान विधि की उम्मीद कर रहा था।

क्या पल लाइब्रेरी के साथ ऐसा करने के लिए एक और अधिक सुरुचिपूर्ण और आसान तरीका है?

उत्तर

10

के बारे में "सरल" सुनिश्चित नहीं हैं, लेकिन अधिक सही नहीं है (के बाद से सभी समय क्षेत्र एक दूसरे से एक पूर्ण घंटे हैं):

// 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>

+0

upvoted और जवाब के रूप में चयन किया। मुझे समझ में नहीं आता कि 'var now = moment.utc(); 'की आवश्यकता क्यों है? क्यों न केवल 'HongYong_time_hr' 'newYork_time_hr' ऑफ़सेट प्राप्त करें? – user781486

+4

इसके ऊपर की टिप्पणी एक संकेत था - टाइमज़ोन ऑफसेट साल भर बदलती है, और [सभी एक ही समय में नहीं) (https://en.wikipedia.org/wiki/Daylight_saving_time_by_country)। हांगकांग (कोई डीएसटी नहीं है) और न्यूयॉर्क (डीएसटी है) के बीच का अंतर अलग-अलग है कि आप गर्मियों में या सर्दी में पूछ रहे हैं या नहीं। और आप केवल 'घंटा' का उपयोग नहीं कर सकते हैं, उदाहरण के लिए कलकत्ता +05: 30 पर ऑफसेट है। – Amadan

+1

ग्रेट उत्तर। हालांकि यह तब भी काम करेगा यदि आप 'moment.utc() 'के बजाय' पल()' पास करते हैं। यह अभी भी उसी यूटीसी-आधारित टाइमस्टैम्प के रूप में मूल्यांकन किया जाता है चाहे आप किस फॉर्म को पास करते हैं। परिणाम के बारे में +1 अलग-अलग होने पर निर्भर करता है जब आप इसे कॉल करते हैं। "न्यूयॉर्क और लॉस एंजिल्स के बीच कितने घंटे?" (आमतौर पर 3, लेकिन कभी-कभी 2 और कभी-कभी 4.) –

संबंधित मुद्दे