2013-06-07 4 views
19

मेरे पास टाइमस्टैम्प के रूप में /Date(1370001284000+0200)/ जैसा कुछ है। मुझे लगता है कि यह एक यूनिक्स तारीख है, है ना? मैं इसे इस तरह की तारीख में कैसे परिवर्तित कर सकता हूं: 31.05.2013 13:54:44यूनिक्स टाइमस्टैम्प से डेटाटाइम

मैंने 1370001284 के लिए THIS कनवर्टर की कोशिश की और यह सही तिथि देता है। तो यह सेकंड में है।

लेकिन मैं अभी भी के लिए गलत तारीख मिलती है:

var substring = unix_timestamp.replace("/Date(", ""); 
substring = substring.replace("000+0200)/", ""); 
var date = new Date(); 
date.setSeconds(substring); 
return date; 
+0

अपने कोड टाइमस्टैम्प मूल्य उत्पन्न किया है, या यह आपके नियंत्रण से बाहर है? मैं पूछता हूं क्योंकि '1370001284000 + 0200' मान्य टाइमस्टैंप नहीं है क्योंकि यह मिलीसेकंड की तरह दिखता है, सेकंड नहीं, और इसमें ज़ोन जानकारी होती है। – Dai

+0

मेरे नियंत्रण से बाहर। इसके कारण मुझे सच में यकीन नहीं है कि यह क्या है। लेकिन मुझे पता है कि 1370001284000 + 0200 और 31.05.2013 13:54:44 मैचों। –

+0

मान लीजिए कि आपको अपना सबस्ट्रिंग "1370001284000" (युग से मिलीसेकंड में समय) के रूप में मिला है, तो आप केवल 'var date = new date (parseInt (substring, 10)) कर सकते हैं; ' – Matijs

उत्तर

29

एक यूनिक्स टाइमस्टैम्प के बाद से 1970-01-01 00:00:00 यूटीसी सेकंड की संख्या है।

+0200 की उपस्थिति का अर्थ है कि संख्यात्मक स्ट्रिंग यूनिक्स टाइमस्टैंप नहीं है क्योंकि इसमें टाइमज़ोन समायोजन जानकारी है। आपको इसे अलग से संभालने की ज़रूरत है।

अपने टाइमस्टैम्प स्ट्रिंग मिलीसेकेंड में है, तो आप मिलीसेकेंड निर्माता और Moment.js एक स्ट्रिंग में दिनांक स्वरूप करने के लिए उपयोग कर सकते हैं:

var t = new Date(1370001284000); 
var formatted = t.format("dd.mm.yyyy hh:MM:ss"); 

अपने टाइमस्टैम्प स्ट्रिंग सेकंड में है, तो setSeconds का उपयोग करें:

var t = new Date(); 
t.setSeconds(1370001284); 
var formatted = t.format("dd.mm.yyyy hh:MM:ss"); 

नोट t.format के अपने प्रयोग Moment.js का उपयोग करने से आता है, यह जावास्क्रिप्ट के मानक Date प्रोटोटाइप का हिस्सा नहीं है।

+0

सेकंड के लिए वर्ष 2056 की तरह somethign है तो यह मिलिसेकंड होना चाहिए। मैंने var date = new date (1370001284000) की कोशिश की; लेकिन यह अमान्य तिथि कहता है।संपादित करें: मुझे लगता है कि टाइमस्टैम्प थोड़ा अजीब है, क्योंकि अगर मैं टाइमस्टैम्प * 100 की तरह कुछ करता हूं, तो मुझे वैध तिथि मिलती है लेकिन साल 4500 या उससे भी अधिक के लिए। –

+0

आपको स्ट्रिंग से '+ 0200' भाग को स्ट्रिप करने की आवश्यकता है, एक संख्या में कनवर्ट करें, फिर इसे 'दिनांक (मिलीसेकंड)' कन्स्ट्रक्टर के लिए तर्क के रूप में आपूर्ति करें। – Dai

+0

मेरी संपादित पोस्ट देखें। –

2

/Date(ms + timezone)/ JSON तिथियों के लिए एक एएसपी.NET वाक्यविन्यास है। आप ऐसी तिथियों को पार्स करने के लिए momentjs जैसी लाइब्रेरी का उपयोग करना चाह सकते हैं। अगर आपको किसी भी समय तिथियों में हेरफेर या प्रिंट करने की ज़रूरत है तो यह आसान होगा।

2

आयात पल js:

var fulldate = new Date(1370001284000); 
var converted_date = moment(fulldate).format("); 
+1

आप तीन साल की उम्र में एक प्रश्न का उत्तर जोड़ रहे हैं। यदि आप समझते हैं (उत्तर में) आपको यह क्यों लगता है कि यह उत्तर मौजूदा उत्तरों से बेहतर है तो यह आमतौर पर सबसे अच्छा होता है। अन्यथा इसे पूरी तरह से डाउनवॉटेड या हटा दिया जाने की संभावना है। –

+0

यह उत्तर वर्तमान क्षण.जेएस के साथ काम करता है – David

2

moment.js के बिना:

var time_to_show = 1509968436; // unix timestamp in seconds 
 

 
var t = new Date(time_to_show * 1000); 
 
var formatted = ('0' + t.getHours()).slice(-2) + ':' + ('0' + t.getMinutes()).slice(-2); 
 

 
document.write(formatted);

1

हैं का उपयोग कर प्रतिक्रिया:

import Moment from 'react-moment'; 
Moment.globalFormat = 'D MMM YYYY'; 

तो:

<td><Moment unix>{1370001284}</Moment></td> 
संबंधित मुद्दे