Je dois analyser une chaîne de date et d'heure au format "2015-01-16 22:15:00". Je veux analyser ceci dans JavaScript Date Object. Une aide à ce sujet?
J'ai essayé quelques plugins jquery, moment.js, date.js, xdate.js. Toujours pas de chance.
Avec moment.js, vous pouvez créer un objet moment en utilisant constructeur String + Format :
var momentDate = moment('2015-01-16 22:15:00', 'YYYY-MM-DD HH:mm:ss');
Ensuite, vous pouvez le convertir en objet de date JavaScript à l'aide de la méthode toDate () :
var jsDate = momentDate.toDate();
new Date("2015-01-16T22:15:00")
Voir Date.parse () .
La chaîne doit être au format ISO-8601. Si vous souhaitez analyser d'autres formats, utilisez moment.js .
moment("2015-01-16 22:15:00").toDate();
Une meilleure solution, j'utilise maintenant date.js - https://code.google.com/p/datejs/
J'ai inclus le script dans ma page html comme ceci -
<script type="text/javascript" src="path/to/date.js"></script>
Ensuite, j'ai simplement analysé la chaîne de date "2015-01-16 22:15:00" en spécifiant le format comme,
var dateString = "2015-01-16 22:15:00";
var date = Date.parse(dateString, "yyyy-MM-dd HH:mm:ss");
J'essayais d'utiliser les gars de moment.js. Mais comme je rencontrais cette erreur, "ReferenceError: moment n'est pas défini", j'ai dû l'ignorer pour l'instant. J'utilise une solution de contournement temporaire pour l'instant.
function parseDate(dateString) {
var dateTime = dateString.split(" ");
var dateOnly = dateTime[0];
var timeOnly = dateTime[1];
var temp = dateOnly + "T" + timeOnly;
return new Date(temp);
}
Si vous êtes sûr qu'il est au format souhaité et que vous n'avez pas besoin de vérifier les erreurs, vous pouvez l'analyser manuellement à l'aide de la division (et éventuellement la remplacer). J'avais besoin de faire quelque chose de similaire dans mon projet (MM/JJ/AAAA HH: mm: ss: sss) et j'ai modifié ma solution pour l'adapter à votre format. Remarquez la soustraction de 1 dans le mois.
var str = "2015-01-16 22:15:00";
//Replace dashes and spaces with : and then split on :
var strDate = str.replace(/-/g,":").replace(/ /g,":").split(":");
var aDate = new Date(strDate[0], strDate[1]-1, strDate[2], strDate[3], strDate[4], strDate[5]) ;