2013-03-14 6 views
13

दो टाइमस्टैम्प घटाते समय new Date() और new Date().getTime() का उपयोग करने के बीच क्या अंतर है?दिनांक() बनाम तिथि()। GetTime()

var prev1 = new Date(); 
setTimeout(function() { 
    var curr1 = new Date(); 
    var diff1 = curr1 - prev1; 
}, 500); 

var prev2 = new Date().getTime(); 
setTimeout(function() { 
    var curr2 = new Date().getTime(); 
    var diff2 = curr2 - prev2; 
}, 500); 

एक कारण मैं एक के ऊपर एक पसंद करते हैं चाहिए: (test script on jsFiddle)

निम्न में से

दोनों एक ही परिणाम देता है?

+0

कोई अंतर नहीं AFAIK 'नई तिथि()' तत्काल पर एमएस में समय वापस कर देगा। – elclanrs

+0

डुप्लिकेट: http://stackoverflow.com/questions/12517359/just-sytnax-date-now-vs-date-gettime – Moe

+1

@ मैं मैं 'नई तारीख() 'बनाम नई तारीख() प्राप्त कर रहा हूं। GetTime() ', नहीं 'दिनांक .now()'। – Antony

उत्तर

45

मुझे लगता है कि यह आपके प्रश्नों में नहीं था मिलता है, लेकिन आप पर विचार करने के Date.now() जो सबसे तेज है क्योंकि आप एक नया Date वस्तु का दृष्टांत की जरूरत नहीं है, विभिन्न संस्करणों की तुलना के लिए निम्न देखें सकते हैं: http://jsperf.com/date-now-vs-new-date-gettime/8

ऊपर के लिंक से पता चलता new Date() का उपयोग कर (new Date()).getTime() की तुलना में तेजी है, लेकिन उस Date.now() उन सब की तुलना में तेजी है। Date.now() के लिए

ब्राउज़र समर्थन भी है कि बुरा (IE9 +) नहीं है:

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/now

+0

किसी कारण से jsperf दिखाता है कि '(नई तिथि())। GetTime() '' + नई तारीख() से अधिक तेज़ है,' कोई विचार क्यों? –

4

जब आप) एक नई तिथि बनाने (आपत्ति यह पूर्ण रूप से अपने वर्तमान समय के लिए शुरू किया गया है।

W3Schools से

:

new Date() // current date and time 
new Date(milliseconds) //milliseconds since 1970/01/01 
new Date(dateString) 
new Date(year, month, day, hours, minutes, seconds, milliseconds) 

getTime() फ़ंक्शन बस उस समय देता है।

W3Schools से:

Date.getTime() // method returns the number of milliseconds between midnight of January 1, 1970 and the specified date. 

http://www.w3schools.com/jsref/jsref_obj_date.asp

+0

मुझे यकीन नहीं है कि मेरी पढ़ने की समझ बंद है या आप 'getTime()' सही तरीके से समझा नहीं रहे हैं। ऐसा लगता है जैसे आप कह रहे हैं कि getTime() का मान उस समय के बीच बदल जाएगा जब 'तिथि' ऑब्जेक्ट बनाया जाता है जब फ़ंक्शन कहलाता है। यही तुम्हारा मतलब नहीं था, है ना? –

+0

यह था, लेकिन मैं गलत था ... मैंने जवाब में संशोधन किया –

3

तिथि अंकगणित युग-समय पर दिनांक धर्मान्तरित, जिसके कारण कार्यात्मक दो कोड स्निपेट ही कर रहे हैं (जनवरी 1970 के बाद से 1 मिलीसेकंड)।

जिसके लिए तेज़ है, जमुंड फर्ग्यूसन का जवाब सही है।

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