2012-11-05 2 views
2

Je veux analyser les dates (format de date chaîne à javascript format de date), mais j'ai plusieurs format de date chaîne comme YYYY-MM-DD, DD-MM-YYYY et 'DD/MM/YYYY' et ainsi ..date de chaîne à javascript Date: Parse Date

Y at-il procédure générique ou moyen de passer de ce format de date de chaîne au format de date javascript?

+2

Recherche SO '[javascript] format de date' => * 3092 * Les résultats – KooiInc

+0

Avez-vous essayé 'Date.parse'? – Bergi

Répondre

1

Ici userFormat chaîne pourrait être dans ces formats 'DD-MM-YYYY', 'YYYY-MM-DD', etc .. 'DD/MM/YYYY'

function parseDate(dateString, userFormat) { 
    var delimiter, theFormat, theDate, month, date, year; 
    // Set default format if userFormat is not provided 
    userFormat = userFormat || 'yyyy-mm-dd'; 

    // Find custom delimiter by excluding 
    // month, day and year characters 
    delimiter = /[^dmy]/.exec(userFormat)[0]; 

    // Create an array with month, day and year 
    // so we know the format order by index 
    theFormat = userFormat.split(delimiter); 

    //Create an array of dateString. 
    theDate = dateString.split(delimiter); 
    for (var i = 0, len = theDate.length; i < len; i++){ 
     //assigning values for date, month and year based on theFormat array. 
     if (/d/.test(theFormat[i])){ 
     date = theDate[i]; 
     } 
     else if (/m/.test(theFormat[i])){ 
     month = parseInt(theDate[i], 10) - 1; 
     } 
     else if (/y/.test(theFormat[i])){ 
     year = theDate[i]; 
     } 
    } 
    return (new Date(year, month, date)); 
} 
+0

wow..son procédure très très générique..thats ce que je voulais vraiment grand merci. –

0

Il suffit d'aller se datejs.

http://www.datejs.com/

... et jamais pris la peine d'écrire à nouveau vos propres fonctions de date Javascript.

2

Il y a deux bibliothèques qui font:

+1

Juste deux? Il y a aussi [XDate] (http://arshaw.com/xdate/), [fecha.js] (https://github.com/taylorhakes/fecha), [date-fns] (https: // www. google.com.au/url?sa=t&rct=j&q=&esrc=s&source=web&cd=4&ved=0ahUKEwjyo-L9r43TAhVCxFQKHfQXDNQQFgg0MAM&url=https%3A%2F%2Fdate-fns.org%2F&usg=AFQjCNEYak1EBCviOaBClNIng5-WItUaDQ&bvm=bv.151426398,d. cGw & cad = rja), [Later.js] (http://bunkat.github.io/later/), [Countdown.js] (http://countdownjs.org), [Cubism.js] (http: // square.github.io/cubism/) (plugin D3), [js-joda] (https://www.npmjs.com/package/js-joda), ... ;-) – RobG

+0

Il y a plus de 2 que vous dites , ce sont les 2 bibliothèques que j'utilise. – mram888

0
function dateParsing(toDate, dateFormat) { 
    var dt = Date.parseInvariant(todate, dateFormat); // pass date and your desired format e.g yyyy/M/dd    
    alert(dt); // to check date 
} 
+0

'Date.parseInvariant()' n'est pas une fonction Javascript. – Roland