Une chaîne datetime est fournie dans le format suivant:
yyyy-MM-dd HH:mm:ss
2011-07-14 11:23:00
Lors d'une tentative d'analyse dans un objet JavaScript date()
, il échoue. Quel est le meilleur moyen de convertir cela en un format que JavaScript peut comprendre?
Les réponses ci-dessous suggèrent quelque chose comme
var myDate = new Date('2011-07-14 11:23:00');
C'est ce que j'utilisais. Il semble que cela puisse être un problème de navigateur. J'ai fait un http://jsfiddle.net/czeBu/ pour cela. Cela fonctionne bien pour moi dans Chrome . Dans Firefox 5.0.1 sur OS X, il retourne Invalid Date
.
Cela fonctionne partout, y compris Safari 5 et Firefox 5 sur OS X.
MISE À JOUR: Fx Quantum (54) n’a pas besoin de le remplacer, mais Safari 11 n’est toujours pas satisfait à moins que vous ne convertissiez comme ci-dessous
var date_test = new Date("2011-07-14 11:23:00".replace(/-/g,"/"));
console.log(date_test);
On peut utiliser les méthodes getmonth et getday pour obtenir uniquement la date.
Ici je joins ma solution:
var fullDate = new Date(); console.log(fullDate);
var twoDigitMonth = fullDate.getMonth() + "";
if (twoDigitMonth.length == 1)
twoDigitMonth = "0" + twoDigitMonth;
var twoDigitDate = fullDate.getDate() + "";
if (twoDigitDate.length == 1)
twoDigitDate = "0" + twoDigitDate;
var currentDate = twoDigitDate + "/" + twoDigitMonth + "/" + fullDate.getFullYear(); console.log(currentDate);
Utilisation:
enter code var moment = require('moment')
var startDate = moment('2013-5-11 8:73:18', 'YYYY-M-DD HH:mm:ss')
Moment.js fonctionne très bien. Vous pouvez en lire plus à ce sujet ici .
Utilisez simplement Date.parse()
qui renvoie un nombre, puis utilisez new Date()
pour l’analyser:
var thedate = new Date(Date.parse("2011-07-14 11:23:00"));
function ConvertDateFromDiv(divTimeStr) {
//eg:-divTimeStr=18/03/2013 12:53:00
var tmstr = divTimeStr.toString().split(' '); //'21-01-2013 PM 3:20:24'
var dt = tmstr[0].split('/');
var str = dt[2] + "/" + dt[1] + "/" + dt[0] + " " + tmstr[1]; //+ " " + tmstr[1]//'2013/01/20 3:20:24 pm'
var time = new Date(str);
if (time == "Invalid Date") {
time = new Date(divTimeStr);
}
return time;
}
Vous pouvez utiliser moment.js pour cela, il convertira l’objet DateTime en date formatée Javascript valide:
moment(DateOfBirth).format('DD-MMM-YYYY'); // put format as you want
Output: 28-Apr-1993
J'espère que ça vous aidera :)
Vous pouvez utiliser les méthodes get:
var fullDate = new Date();
console.log(fullDate);
var twoDigitMonth = fullDate.getMonth() + "";
if (twoDigitMonth.length == 1)
twoDigitMonth = "0" + twoDigitMonth;
var twoDigitDate = fullDate.getDate() + "";
if (twoDigitDate.length == 1)
twoDigitDate = "0" + twoDigitDate;
var currentDate = twoDigitDate + "/" + twoDigitMonth + "/" + fullDate.getFullYear(); console.log(currentDate);