2011-01-02 4 views
35

से चलाया जाता है यदि जावास्क्रिप्ट (new Date()).getTime() एक साथ 2 अलग-अलग टाइमज़ोन से चलाया जाता है, तो क्या आपको वही मान मिलेगा?यदि जावास्क्रिप्ट "(नई तिथि())। GetTime()" 2 अलग-अलग टाइमज़ोन

क्या यह मान उस मशीन पर सेट सिस्टम सिस्टम द्वारा प्रभावित होगा जहां ब्राउज़र चल रहा है?

उत्तर

46

हां, यह सिस्टम समय से प्रभावित है। हालांकि, यदि स्थानीय समय सही है (जो भी समय क्षेत्र कंप्यूटर पर सेट है), यह किसी भी समय क्षेत्र में समान होना चाहिए।

ECMAScript मानक कहते हैं (§15.9.1.1):

"। समय 01 जनवरी, 1970 के बाद से यूटीसी मिलीसेकेंड में ECMAScript में मापा जाता है"

6

आपको दो क्लाइंट के ब्राउज़र के बीच अपना सिस्टम समय चुनने के बीच समान मूल्य नहीं मिलेगा, लेकिन यदि उनका समय ठीक हो गया है, तो आपको new Date() का उपयोग करके टाइमस्टैम्प प्राप्त करने के बाद न्यूनतम अंतर के साथ दो बार मिलना चाहिए, आप यूटीसी वैल्यू प्राप्त कर सकते हैं (new Date() 1 जनवरी 1 9 70 से मिलीसेकंड की रिटर्न संख्या, और यह बदलेगी नहीं), जो सार्वभौमिक समय है और स्थान अज्ञेयवादी है।

2

वहाँ सबसे अधिक संभावना हमेशा मशीनों के बीच प्राप्त कर ली बार के बीच एक विचलन होगा, लेकिन (मैं गलत पहले था) जावास्क्रिप्ट की तारीख() डिफ़ॉल्ट के रूप में UTC समयज़ोन लेता है।

आमतौर पर जब समय के लिए आवश्यक है, यह सबसे अच्छा बस सर्वर समय का उपयोग और उत्पादन में है कि करने के लिए समय-क्षेत्र सुधार लागू यदि आवश्यक है।

+0

से बाहर है यह गलत है। जब तक स्थानीय समय सही होता है, समय क्षेत्र कोई फर्क नहीं पड़ता। –

+0

वह अलग-अलग समय क्षेत्रों के बारे में बात कर रहा है, जिसमें स्थानीय समय अलग-अलग होंगे जब तक कि कोई व्यक्ति अपने टाइम टाइम से दूसरे समय क्षेत्र के साथ मेल खाने के लिए चुने गए। – BGerrissen

+0

'getTime' स्थानीय समय वापस नहीं करता है, हालांकि। जब तक स्थानीय समय सही ढंग से सेट किया जाता है (जो भी समय क्षेत्र कंप्यूटर में है), यूटीसी समय 'गेटटाइम' द्वारा वापस किया जाएगा, यह भी सही होगा। –

1

यदि आप अलग अलग समय क्षेत्र में अपने सर्वर के रूप में एक ही तिथि चाहते हैं तो आप ऐसा करने के लिए चाहते हो सकता है:

var UTC=new Date(Date.UTC(serverYear,serverMonth-1,serverDate,0,0,0,0)); 
20

कोड:

var today = new Date(); 
console.log(today); 
var t = today.getTime(); 
console.log(t); 

ब्रिटेन में मेरा कंप्यूटर:

Sat Sep 21 2013 03:45:20 GMT+0100 (GMT Daylight Time) 
1379731520112 

मेरे VPS:

getTime मूल्यों के बीच
Sat, 21 Sep 2013 02:44:31 GMT 
1379731471743 

अंतर 48,369 मिलीसेकंड (48s) सिंक नहीं 1 घंटे क्षेत्र अंतर

+4

एक प्रयोग हमेशा चीजों को प्रमाणित करने का एक अच्छा तरीका है –