web-dev-qa-db-fra.com

Convertir date/heure en date JavaScript valide

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.

15
Jeremy B.

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);


VIOLON

37
mplungjan

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);

6
Shekhar Patel

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 .

2
Satyam Naolekar

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"));
1
pimvdb
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;
}
1
Ragesh Punathil

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 :)

0
SHUJAT MUNAWAR

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);

0
Muhafil Saiyed