मुझे पता है कि मैं कुछ भी कर सकता हूं और कुछ और एन्वोलेटिंग डेट्स पल-पल के साथ कर सकता हूं। लेकिन शर्म की बात है, मैं एक कठिन समय कुछ ऐसा करने की कोशिश कर रहा हूं जो सरल लगता है: 2 बार के बीच अंतर प्राप्त करना।
उदाहरण:
var now = "04/09/2013 15:00:00";
var then = "04/09/2013 14:20:30";
//expected result:
"00:39:30"
मैंने क्या कोशिश की:
var now = moment("04/09/2013 15:00:00");
var then = moment("04/09/2013 14:20:30");
console.log(moment(moment.duration(now.diff(then))).format("hh:mm:ss"))
//outputs 10:39:30
मुझे समझ में नहीं आ रहा है कि वहां "10" क्या है। मैं ब्राज़ील में रहता हूँ, इसलिए अगर यह प्रासंगिक है तो हम utc-0300 हैं।
इसका परिणाम moment.duration(now.diff(then))
सही आंतरिक मूल्यों के साथ एक अवधि है:
days: 0
hours: 0
milliseconds: 0
minutes: 39
months: 0
seconds: 30
years: 0
इसलिए, मुझे लगता है कि मेरा सवाल यह है: एक संवेग की अवधि कैसे बदलें एक समय अंतराल के लिए? मुझे यकीन है कि उपयोग कर सकते हैं
duration.get("hours") +":"+ duration.get("minutes") +:+ duration.get("seconds")
लेकिन मुझे लगता है कि कुछ और सुरुचिपूर्ण है जो मुझे पूरी तरह याद आ रही है।
अपडेट को
नज़दीक से देखना, उपरोक्त उदाहरण में now
है:
Tue Apr 09 2013 15:00:00 GMT-0300 (E. South America Standard Time)…}
और moment(moment.duration(now.diff(then)))
:
Wed Dec 31 1969 22:39:30 GMT-0200 (E. South America Daylight Time)…}
मुझे यकीन नहीं है कि डेलाइट टाइम (-0200) में दूसरा मूल्य क्यों है ... लेकिन मुझे यकीन है कि मुझे तारीखें पसंद नहीं हैं :(
अद्यतन २
खैर, मान -0200 शायद इसलिए है क्योंकि 31/12/1969 एक ऐसी तारीख थी जहां दिन के समय का उपयोग किया जा रहा था ... इतना ही।