2010-01-06 12 views

उत्तर

16

/ द्वारा - बदलें और जावास्क्रिप्ट यह पार्स कर सकते हैं। जे एस विनिर्देश में बेवकूफ गलती (आईएसओ दिनांक/समय मानक बहुत स्पष्ट है कि - सही है)

var str = "2010-1-10"; 
alert(Date.parse(str.replace(/-/g,"/"))); 

आपके ब्राउज़र में चिपकाने का प्रयास करें: javascript:alert(Date.parse("2010-01-01".replace(/-/g,"/")));

+1

जोड़ा गया कोड नमूना –

+0

अरे, यह असली साफ है! महान टिप! –

+1

लेकिन यह एक संख्या है, ऑब्जेक्ट नहीं। – user198729

0
Date.parse(datestring) 

उदाहरण; 8 जुलाई, 2005 1 जनवरी, 1970 से मिलीसेकेंड की संख्या लौटें:

var d = Date.parse("Jul 8, 2005"); 
alert(d); 
// 1120773600000 
+0

यह गलत है। Date.parse '200-1-1'' को संभाल नहीं सकता है। आपको '/'' '' 'से बदलना होगा। –

8
var s = "2010-1-10".split('-'); 
var dateObj = new Date(Number(s[0]),Number(s[1]) -1 ,Number(s[2])) 
1
var date = new Date(); 
var str = "2010-1-10"; 
var dateArray = str.split("-") 
date.setFullYear(parseInt(dateArray[0])); 
date.setMonth(parseInt(dateArray[1])-1); // months indexed as 0-11, substract 1 
date.setDate(parseInt(dateArray[2]));  // setDate sets the month of day 
+0

तय किया गया है कि –

+0

@ जैन जोंगबूम के लिए धन्यवाद! –

0

किसी भी आईएसओ 8601 से एक नया दिनांक वस्तु वापस जाने के लिए स्वरूपित स्ट्रिंग, जो "2010-01-10" से "2010-01-10T19: 42: 45.5-05: 00", से कई पैटर्नों को देखने की आवश्यकता है।

सेकंड डिवीजन (एक दशमलव बिंदु से पहले) और स्थानीय समय क्षेत्र ऑफसेट (द्वारा एक '+' या पहले '-') यहाँ कोड के तीन तिमाहियों हैं:

Date.parseISO= function(iso){ 
var z, tem, TZ, ms= 0; 
z= /:/.test(iso)? ' GMT': ''; 
ms=/(\.\d+)/.exec(iso); 
if(ms){ 
    ms= ms[1]; 
    iso= iso.replace(ms,''); 
    ms= Math.round(1000*ms); 
} 
if(z && !/Z$/.test(iso)){ 
    TZ=/:\d\d((\-|\+)(\d\d):(\d\d))$/.exec(iso); 
    if(TZ){ 
    tem= TZ[3]*60+(+TZ[4]); 
    z+= TZ[2]+tem; 
    iso= iso.replace(TZ[1],''); 
    } 
} 
iso= iso.replace(/[^\d:]/g,' ')+z; 
var stamp= Date.parse(iso); 
if(!stamp) throw iso +' Unknown date format'; 
return new Date(stamp+ms); 
} 

// एक जावास्क्रिप्ट दिनांक से एक आईएसओ स्ट्रिंग हो रही है सबसे आसान अगर आप यूटीसी (जीएमटी) का उपयोग

Date.prototype.toISO= function(time){ 
var i=0, D= this, A= [D.getUTCFullYear(), D.getUTCMonth(), D.getUTCDate(), 
D.getUTCHours(), D.getUTCMinutes(), D.getUTCSeconds()]; 
++A[1]; 
var T= A.splice(3); 
A= A.join('-'); 
if(time){ 
    if(time==2) T.pop(); 
    while(i< T.length){ 
    if(T[i]<10) T[i]= '0'+T[i]; 
    ++i; 
    } 
    if(time==4)T[2]= T[2]+'.'+ 
    Math.round((this.getMilliseconds()/1000)*1000); 
    return A+'T'+T.join(':')+'Z'; 
} 
return A; 
} 
संबंधित मुद्दे

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