2012-02-10 9 views
40

में आईएसओ तिथि से मिलीसेकंड में कनवर्ट करें क्या मैं आईएसओ तिथि को मिलीसेकंड में परिवर्तित कर सकता हूं? उदाहरण के लिए मैं मिलीसेकेंड को यह आईएसओजावास्क्रिप्ट

2012-02-10T13:19:11+0000 

परिवर्तित करना चाहते हैं।

क्योंकि मैं वर्तमान तिथि से वर्तमान दिनांक की तुलना करना चाहता हूं। और बनाई गई तारीख एक आईएसओ तिथि है।

+0

"मिलीसेकंड" वास्तव में आपका क्या मतलब है? मिलीसेकंड समय के साथ किस बिंदु के सापेक्ष? क्या आपका मतलब यूनिक्स टाइमस्टैम्प है? –

+0

याहू एपीआई की तरह, दिनांक मिलीसेकंड '1328796537' द्वारा दिखाया गया है, लेकिन एफबी एपीआई में, दिनांक आईएसओ '2012-02-10T13: 18: 45 + 0000' –

+0

में दिखाया गया है [संभावित पार्सिंग आईएसओ 8601 दिनांक में जावास्क्रिप्ट] (http://stackoverflow.com/questions/4829569/help-parsing-iso-8601-date-in-javascript) – mplungjan

उत्तर

65

इस

var date = new Date("11/21/1987 16:00:00"); // some mock date 
var milliseconds = date.getTime(); 
// This will return you the number of milliseconds 
// elapsed from January 1, 1970 
// if your date is less than that date, the value will be negative 

संपादित

आप एक आईएसओ तारीख प्रदान की है की कोशिश करो। यह भी Date वस्तु

var myDate = new Date("2012-02-10T13:19:11+0000"); 
var result = myDate.getTime(); 

संपादित

सबसे अच्छा मैंने पाया है की निर्माता द्वारा स्वीकार किया जाता मैन्युअल ऑफसेट से छुटकारा पाने के।

var myDate = new Date("2012-02-10T13:19:11+0000"); 
var offset = myDate.getTimezoneOffset() * 60 * 1000; 

var withOffset = myDate.getTime(); 
var withoutOffset = withOffset - offset; 
alert(withOffset); 
alert(withoutOffset); 

काम करना प्रतीत होता है। जहां तक ​​आईएसओ स्ट्रिंग को Date ऑब्जेक्ट में कनवर्ट करने में समस्याएं हैं, तो आप दिए गए लिंक का उल्लेख कर सकते हैं।

संपादित

Prasad19sara की टिप्पणी के अनुसार मिलीसेकेंड के लिए गलत रूपांतरण के साथ बग फिक्स्ड।

+0

की आवश्यकता है टाइमज़ोनॉफ़सेट http://jsfiddle.net/mplungjan/r7xDk के साथ काम नहीं करता है/ – mplungjan

+0

हां, तारीख सभी ब्राउज़रों पर पार्स नहीं होगी। [संबंधित प्रश्न पर मेरा उत्तर देखें।] (Http://stackoverflow.com/questions/5802461/javascript-which-browsers-support-parsing-of-iso-8601-date-string-with-date-par/5803041# 5803041) –

+0

और मेरी टिप्पणी के तहत उत्तर पर मेरी टिप्पणी देखें;) – mplungjan

19

पिछले समाधान का एक आशुलिपि

var myDate = +new Date("2012-02-10T13:19:11+0000"); 

यह मक्खी जैसे रूपांतरण पर एक करता है और सीधे मिलीसेकंड स्वरूप में तिथि आउटपुट।

एक और तरीका डेट उपयोग के पार्स विधि का भी उपयोग कर रहा है जो केवल मिलीसेकंड में EPOCH समय आउटपुट करता है।

var myDate = Date.parse("2012-02-10T13:19:11+0000"); 
+0

आपके पास थोड़ा टाइपो है, '+' –

+0

@ स्टुअर्ट-सिग्लर वास्तव में कोई टाइपो नहीं है, '+' मिलीसेकंड में दिनांक लौटाता है। – LordTribual

+0

@LordTribual "+ new" मिलीसेकंड में तारीख लौटाता है? –

1

एक अन्य विकल्प के रूप में 2017 के Date.parse() उपयोग करने के लिए है। हालांकि, एमडीएन के documentation अंक बताते हैं कि यह ईएस 5 से पहले अविश्वसनीय है।

var date = new Date(); // today's date and time in ISO format 
var myDate = Date.parse(date); 

अधिक जानकारी के लिए fiddle देखें।

1

एक और संभावित समाधान January 1, 1970 के साथ वर्तमान दिनांक की तुलना करना है, तो आप January 1, 1970new Date(0) से प्राप्त कर सकते हैं;

var date = new Date(); 
var myDate= date - new Date(0);