web-dev-qa-db-fra.com

Conversion de la date ISO au format de date au format aaaa-mm-jj en javascript

Comment puis-je obtenir une date au format aaaa-mm-jj à partir d'une date iso?

Ma date ISO est 

2013-03-10T02:00:00Z

Comment puis-je avoir:

2013-03-10
59
neeraj

Essaye ça

date = new Date('2013-03-10T02:00:00Z');
date.getFullYear()+'-' + (date.getMonth()+1) + '-'+date.getDate();//prints expected format.

Mettre à jour:-

Comme indiqué dans les commentaires, je mets à jour la réponse afin d’imprimer les zéros à gauche pour la date et le mois si nécessaire.

date = new Date('2013-08-03T02:00:00Z');
year = date.getFullYear();
month = date.getMonth()+1;
dt = date.getDate();

if (dt < 10) {
  dt = '0' + dt;
}
if (month < 10) {
  month = '0' + month;
}

console.log(year+'-' + month + '-'+dt);

52
Mritunjay

Il suffit de recadrer la chaîne:

var date = new Date("2013-03-10T02:00:00Z");
date.toISOString().substring(0, 10);

Ou si vous avez seulement besoin de sortir de la date.

var strDate = "2013-03-10T02:00:00Z";
strDate.substring(0, 10);
102
DriveByPoster

Vous pouvez commander Moment.js , Luxon ou date-fns pour une manipulation de date Nice.

Ou simplement extraire la première partie de votre chaîne ISO, elle contient déjà ce que vous voulez. Voici un exemple de splitting sur le T:

"2013-03-10T02:00:00Z".split("T")[0] // "2013-03-10"
18
antoine129

Moment se chargera du formatage de la date. Voici comment l'inclure via une balise javascript, puis un exemple d'utilisation du moment pour formater une date.

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js"></script>

moment("2013-03-10T02:00:00Z").format("YYYY-MM-DD") //"2013-03-10"
10
Harris

moment est une très grande bibliothèque à utiliser pour un cas d'utilisation unique. Recommandez d'utiliser date-fns à la place. Il offre fondamentalement la plupart des fonctionnalités de moment avec une taille de paquet beaucoup plus petite et plusieurs formatting options .

import format from 'date-fns/format'
format('2013-03-10T02:00:00Z', 'YYYY-MM-DD'); //2013-03-10, YYYY-MM-dd for 2.x

Une chose à noter est que, puisque son navigateur de format d'heure ISO convertit généralement l'heure UTC au fuseau horaire local. Bien que ce soit simple cas où vous pouvez probablement faire '2013-03-10T02:00:00Z'.substring(0, 10);.

Pour des conversions plus complexes, date-fns est la voie à suivre.

7
Hozefa

Passez votre objet date dans la date.

var d = new Date('2013-03-10T02:00:00Z');
d.toLocaleDateString().replace(/\//g,'-');
6
rk rk

Cela affichera la date au format AAAA-MM-JJ:

let date = new Date();
date = date.toISOString().slice(0,10);
4
sebhs

C'est ce que je fais pour avoir un rendez-vous seul, 

let isoDate = "2013-03-10T02:00:00Z";
    
    alert(isoDate.split("T")[0]);

3
Aravindh Gopi

new Date (). toISOString (). substring (0, 10);

2
Ankita

Si vous avez un objet de date:

let date = new Date()
let result = date.toISOString().split`T`[0]

console.log(result)

ou

let date = new Date()
let result = date.toISOString().slice(0, 10)

console.log(result)

    var d = new Date("Wed Mar 25 2015 05:30:00 GMT+0530 (India Standard Time)");
    alert(d.toLocaleDateString());

2
Abilash Raghu

let isoDate = "2013-03-10T02:00:00Z";
    var d=new Date(isoDate);
    d.toLocaleDateString('en-GB');//dd/mm/yyyy
    d.toLocaleDateString('en-US');//mm/dd/yyyy

1
Ammar H Alshaar

pour étendre la solution @rk rk. Si vous souhaitez que le format comprenne l'heure, vous pouvez ajouter le toTimeString() à votre chaîne, puis supprimer la partie GMT, comme suit:

var d = new Date('2013-03-10T02:00:00Z');
var fd = d.toLocaleDateString()+' '+d.toTimeString().substring(0, d.toTimeString().indexOf("GMT"));
1
Airwavezx
let dt = new Date('2013-03-10T02:00:00Z');    
let dd = dt.getDate();
let mm = dt.getMonth()+1; 
let yyyy = dt.getFullYear();
if(dd<10){
  dd='0'+dd;
  } 
if(mm<10){
    mm='0'+mm;
  } 
return yyyy+'-'+mm+'-'+ dd;
0
MemoryLeak

Cela peut être couvert par date-heure:

let now = date.format(new Date(), 'YYYY-MM-DD');
console.log(now);
<script src="https://cdn.jsdelivr.net/npm/date-and-time/date-and-time.min.js"></script>

0
Yi-Ting Liu

J'ai utilisé ceci: 

HTMLDatetoIsoDate(htmlDate){
  let year = Number(htmlDate.toString().substring(0, 4))
  let month = Number(htmlDate.toString().substring(5, 7))
  let day = Number(htmlDate.toString().substring(8, 10))
  return new Date(year, month - 1, day)
}

isoDateToHtmlDate(isoDate){
  let date = new Date(isoDate);
  let dtString = ''
  let monthString = ''
  if (date.getDate() < 10) {
    dtString = '0' + date.getDate();
  } else {
    dtString = String(date.getDate())
  }
  if (date.getMonth()+1 < 10) {
    monthString = '0' + Number(date.getMonth()+1);
  } else {
    monthString = String(date.getMonth()+1);
  }
  return date.getFullYear()+'-' + monthString + '-'+dtString
}

Source: http://gooplus.fr/17/2017 07/13/angular2-TypeScript-isodate-to-html-date/

0
Alan