2009-08-22 6 views

Répondre

3

Je pense que cela peut vous aider http://www.mattkruse.com/javascript/date/

Theres une fonction getDateFromFormat() que vous pouvez modifier un peu pour résoudre votre problème.

+0

@lucas et qu'en est-il du temps pour l'analyser? – avnic

+0

La fonction d'analyse n'accepte pas ce format, essayez-le, dans IE et FF, vous obtiendrez ** Mon Nov 08 2010 12: 05: 00 **, dans Chrome juste ** Date invalide ** – CMS

+0

@CMS: Il était une première supposition. J'ai trouvé une méthode différente. Merci. – Kredns

3

Vous pouvez obtenir les parties de la date à l'aide d'une expression rationnelle, et appelez le constructeur Date, ajuster le nombre de mois, puisque le nombre de mois sont basés sur zéro, par exemple:

function customDateParse (input) { 
    var m = input.match(/(\d+)/g); 
    return new Date(m[2], m[1] - 1, m[0], m[3], m[4], m[5]); 
} 

customDateParse('23/08/2009 12:05:00'); 
// Sun Aug 23 2009 12:05:00 

Si vous n'êtes pas comme regexps:

function customDateParse (input) { 
    input = input.split(' '); 
    var date = input[0].split('/'), 
     time = input[1].split(':'); 

    return new Date(date[2], date[1] - 1, date[0], time[0], time[1], time[2]); 
} 

customDateParse('23/08/2009 12:05:00'); 
// Sun Aug 23 2009 12:05:00 

Mais si vous trouvez que complexe et vous êtes prêt à faire plus de manipulations de ce jour, je vous recommande fortement la bibliothèque DateJS, petite, opensource et le sucre syntaxique ...

+0

Cela semble un peu complexe. Cela semble également être une utilisation excessive de Regex car il existe une méthode 'getDateFromFormat()' disponible en JavaScript. – Kredns

+0

Il n'y a pas de fonction native * getDateFromFormat * ... – CMS

+0

Voir le lien que j'ai fourni dans ma réponse. – Kredns

1

Utilisez la fonction momentjs pour convertir une chaîne en objet Date.

var date = '23/08/2009 12:05:00'; 
var datetime = moment(date, 'DD/MM/YYYY HH:mm:ss'); 
datetime = moment.toDate();