सेकंड या मिलीसेकंड
तिथियों को संभालते समय सबसे सामान्य गलती दोनों को आपस में मिलाना है। Unix टाइमस्टैम्प 1970-01-01 UTC से सेकंड गिनते हैं; JavaScript का Date.now() मिलीसेकंड गिनता है। बिना 1000 से गुणा किए Unix टाइमस्टैम्प को सीधे Date कंस्ट्रक्टर में दें, और आप जनवरी 1970 में पहुँच जाएँगे। एक नियम के रूप में, 10 अंकों की संख्या सेकंड है और 13 अंकों की संख्या मिलीसेकंड है, और यहीं से स्वतः-पता लगाने वाला यहाँ तय करता है।
मानक और वे कैसे भिन्न हैं
- ISO 8601 आधारभूत मानक है:
2024-01-15T10:30:00.000Z। T दिनांक को समय से अलग करता है और Z का अर्थ UTC है।
- RFC 3339 इंटरनेट प्रोटोकॉल्स के लिए ISO 8601 का एक सख्त प्रोफाइल है। यह एक स्पष्ट ऑफसेट की आवश्यकता होती है, इसलिए यह
Z के बजाय +00:00 लिखता है।
- ISO 9075 SQL मानक रूप है,
2024-01-15 10:30:00 — T के बजाय एक रिक्त स्थान, और कोई समय क्षेत्र नहीं। यही अधिकांश डेटाबेस प्रिंट करते हैं।
- RFC 7231 HTTP तिथि प्रारूप है जिसका उपयोग
Date, Expires और Last-Modified हेडर्स में होता है, हमेशा GMT में।
दो अलग थलग पड़े
एक Mongo ObjectID 12 बाइट्स का होता है और पहले चार Unix सेकंड में निर्माण समय होते हैं, इसलिए हर ObjectID के भीतर एक टाइमस्टैम्प होता है। यह उपकरण डिकोड करते समय उसे निकालता है; जब कोई उत्पन्न करता है तो यह शेष आठ बाइट्स को शून्य से भरता है, मशीन और काउंटर मानों को गढ़ने के बजाय।
Excel सीरियल तिथियाँ 1899-12-30 से दिन गिनती हैं, जिसमें भिन्न भाग दिन के समय को दर्शाता है। विचित्र एपोक इसलिए मौजूद है क्योंकि Excel जानबूझकर Lotus 1-2-3 बग को पुन: उत्पन्न करता है जिसने 1900 को लीप वर्ष माना था। 1899-12-30 को दिन शून्य के रूप में उपयोग करने से मार्च 1900 के बाद की हर तिथि सही ढंग से संरेखित हो जाती है, जिसी वजह से यह कनवर्टर इसका उपयोग करता है।
सब कुछ एक ही क्षण है
जो कुछ भी आप टाइप करते हैं, उपकरण उसे एकल JavaScript Date में पार्स करता है और उस एक क्षण को सभी ग्यारह प्रारूपों में फिर से प्रस्तुत करता है। कुछ भी कहीं नहीं भेजा जाता — रूपांतरण पूरी तरह से आपके ब्राउज़र में चलता है।