function formatDate (input) {
  var datePart = input.match(/\d+/g),
  year = datePart[0].substring(2), // get only two digits
  month = datePart[1], day = datePart[2];

  document.write(new Date(day+'/'+month+'/'+year));
}

formatDate ('2010/01/18');

Quand j'imprime ceci, j'obtiens Thu Jun 01 1911 00:00:00 GMT+0530 (India Standard Time) mais le système est en fait 15h42

0
John Cooper 1 déc. 2011 à 14:12

3 réponses

Meilleure réponse

Utilisez la date actuelle pour récupérer l'heure et l'inclure dans la nouvelle date. Par exemple:

var now = new Date,
    timenow = [now.getHours(),now.getMinutes(),now.getSeconds()].join(':'),
    dat = new Date('2011/11/30 '+timenow);
0
KooiInc 1 déc. 2011 à 10:34

Qu'est-ce que tu veux? Juste le temps? Ou souhaitez-vous définir un format? Cu le code attend ce format pour la date: jj / mm / aaaa, changé cela en aaaa / mm / jj

Essaye ça:

function formatDate (input) {
  var datePart = input.match(/\d+/g),
  year = datePart[0],
  month = datePart[1], day = datePart[2],
  now = new Date;

  document.write(new Date(year+'/'+month+'/'+day+" " + now.getHours() +':'+now.getMinutes() +':'+now.getSeconds()));
}

formatDate ('2010/01/18')

Production:

Mon Jan 18 2010 11:26:21 GMT+0100
0
Niels 1 déc. 2011 à 10:26

Vous devez donner le temps:

//Fri Nov 11 2011 00:00:00 GMT+0800 (中国标准时间)
alert(new Date("11/11/11"));

//Fri Nov 11 2011 23:23:00 GMT+0800 (中国标准时间)    
alert(new Date("11/11/11 23:23"));
0
island205 1 déc. 2011 à 10:24
8339603