function show_elapsed_time(from)
{
var time_elapsed = new Date().getTime()-from;
var date = new Date(time_elapsed);
var date_elements = (pad(date.getHours()) + ':' + pad(date.getMinutes()) + ':' + pad(date.getSeconds())).split('');
var date_string = '';
for(i = 0; i < date_elements.length; i++)
{
date_string += '<div class="frame">' + date_elements[i] + '</div>';
}
$('#digital_clock').html(date_string);
}
show_elapsed_time(1308446047*1000)
अपेक्षित परिणाम (इस पोस्ट के समय) 0 घंटे, 2 मिनट, .. सेकंड है। यह ओपेरा, क्रोम और आईई द्वारा दिया गया परिणाम भी है। हालांकि, फ़ायरफ़ॉक्स 1 घंटा, 2 मिनट, आदि देता है। इसे कैसे ठीक करें?
मूल रूप से:
var date = new Date(1453288); console.log(date.getHours()); // FF: 1, IE: 0, Opera 0
मैं जो कर रहा हूं वह ले रहा हूं: new Date().getTime() - [some timestamp] == time passed
इसलिए मुझे [some timestamp]
से घंटे, मिनट और सेकंड में बीतने वाले समय को जानना होगा।
2
Gajus
19 जून 2011, 05:33
क्या आपके पास फ़ायरफ़ॉक्स पर लोकेल सेटिंग्स को बदलने के लिए कोई ऐडऑन है? मुझे एफएफ, क्रोमियम ब्राउज़र पर वही परिणाम मिलते हैं। सभी ऐड-ऑन अक्षम करें और प्रयास करें।
– Praveen Lobo
19 जून 2011, 05:46
मुझे आपके पिछले 1453288 उदाहरण पर एफएफ और क्रोम दोनों के लिए '18' मिलता है ... लेकिन फिर मैं जीएमटी -6 में हूं।
– Marc B
19 जून 2011, 05:48
आप उस खराब तिथि के साथ क्या कर रहे हैं- नई तिथि (नई तिथि () - नई तिथि (1308446047*1000))/* लौटाई गई मूल्य: (दिनांक) बुध 31 दिसंबर 1969 22:53:37 जीएमटी-0500 (पूर्वी दिन के उजाले का समय) */ उस समय का किसी भी चीज़ से क्या लेना-देना है?
– kennebec
19 जून 2011, 09:09
1 उत्तर
सबसे बढ़िया उत्तर
खैर, समस्या विभिन्न लोकेल ब्राउज़र सेटिंग्स के साथ है। समस्या को हल करने का एक तरीका UTC
विशिष्ट विधियों का उपयोग करना है, उदा। getUTCTime()
. इसके बजाय, मैंने गणित करने के लिए यह छोटी सी लिपि लिखी है:
var time_elapsed = new Date().getTime()-from;
var hours = Math.floor(time_elapsed/(3600*1000));
time_elapsed -= hours*(3600*1000);
var minutes = Math.floor(time_elapsed/(60*1000));
time_elapsed -= minutes*(60*1000);
var seconds = Math.floor(time_elapsed/1000);
1
Gajus
19 जून 2011, 06:00