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