web-dev-qa-db-fra.com

Comment puis-je obtenir une date au format AAAA-MM-JJ?

Normalement, si je voulais avoir la date, je pouvais faire quelque chose comme:

var d = new Date(); console.log(d);

Le problème avec cela, c'est que quand je lance ce code, il retourne:

Lundi 24 août 2015 16h20 GMT-0800 (heure normale du Pacifique)

Comment pourrais-je obtenir la méthode Date () pour renvoyer une valeur au format "MM-JJ-AAAA" afin qu'elle renvoie quelque chose comme:

24/08/2015

Ou peut-être MM-JJ-AAAA H: M

24/08/2016 4:20

5
OneStig

Le code ci-dessous est une façon de le faire. Si vous avez une date, passez-la à la fonction convertDate() et elle retournera une chaîne au format AAAA-MM-JJ:

var todaysDate = new Date();

function convertDate(date) {
  var yyyy = date.getFullYear().toString();
  var mm = (date.getMonth()+1).toString();
  var dd  = date.getDate().toString();

  var mmChars = mm.split('');
  var ddChars = dd.split('');

  return yyyy + '-' + (mmChars[1]?mm:"0"+mmChars[0]) + '-' + (ddChars[1]?dd:"0"+ddChars[0]);
}

console.log(convertDate(todaysDate)); // Returns: 2015-08-25
7
Patrick2607

Utilisez simplement la méthode .toISOString() intégrée comme suit: toISOString().split('T')[0]. Simple, propre et tout en une seule ligne.

var date = (new Date()).toISOString().split('T')[0];
document.getElementById('date').innerHTML = date;
<div id="date"></div>

Veuillez noter que le fuseau horaire de la chaîne formatée estUTCplutôt que l'heure locale.

20
leaksterrr

Encore une autre manière:

var today = new Date().getFullYear()+'-'+("0"+(new Date().getMonth()+1)).slice(-2)+'-'+("0"+new Date().getDate()).slice(-2)
document.getElementById("today").innerHTML = today
<div id="today">

2
maxagaz

Ce que vous voulez réaliser peut être accompli avec JavaScript natif. L'objet Date a des méthodes qui génèrent exactement le résultat souhaité.
Voici des exemples de code:

var d = new Date();
console.log(d);
>>> Sun Jan 28 2018 08:28:04 GMT+0000 (GMT)
console.log(d.toLocaleDateString());
>>> 1/28/2018
console.log(d.toLocaleString());
>>> 1/28/2018, 8:28:04 AM

Il n'est vraiment pas nécessaire de réinventer la roue.

1
cezar
function formatdate(userDate){
  var omar= new Date(userDate);
  y  = omar.getFullYear().toString();
  m = omar.getMonth().toString();
  d = omar.getDate().toString();
  omar=y+m+d;
  return omar;
}
console.log(formatDate("12/31/2014"));
1
Omar Khaiyam

Voici une fonction simple que j'ai créée lorsque j'ai continué à travailler sur un projet où je devais constamment obtenir la date d'aujourd'hui, d'hier et de demain dans ce format. 

function returnYYYYMMDD(numFromToday = 0){
  let d = new Date();
  d.setDate(d.getDate() + numFromToday);
  const month = d.getMonth() < 9 ? '0' + (d.getMonth() + 1) : d.getMonth() + 1;
  const day = d.getDate() < 10 ? '0' + d.getDate() : d.getDate();
  return `${d.getFullYear()}-${month}-${day}`;
}

console.log(returnYYYYMMDD(-1)); // returns yesterday
console.log(returnYYYYMMDD()); // returns today
console.log(returnYYYYMMDD(1)); // returns tomorrow

Peut-être facilement modifié pour lui donner une date, mais ici vous passez un numéro et il retournera autant de jours à compter d’aujourd’hui.

0
Lou Bagel

Si vous essayez d’obtenir la chaîne de date 'local-ISO'. Essayez le code ci-dessous.

function (date) {
    return new Date(+date - date.getTimezoneOffset() * 60 * 1000).toISOString().split(/[TZ]/).slice(0, 2).join(' ');
}

+date Obtenez des millisecondes à partir d'une date.

Réf: Date.prototype.getTimezoneOffset Amuse-toi bien :)

0
Fisher