it-swarm.com.de

Konvertieren Sie das ISO-Datum in das Datumsformat yyyy-mm-dd in Javascript

Wie kann ich ein Datum mit dem Format jjjj-mm-dd vom iso-Datum erhalten?

Mein ISO-Datum ist 

2013-03-10T02:00:00Z

Wie bekomme ich:

2013-03-10
59
neeraj

Versuche dies

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

Update: -

Wie in Kommentaren darauf hingewiesen wurde, aktualisiere ich die Antwort, falls nötig, für Datum und Monat führende Nullen zu drucken.

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

Beschneiden Sie einfach die Zeichenfolge:

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

Oder wenn Sie nur ein Datum außerhalb der Zeichenkette benötigen.

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

Sie könnten checken Moment.js , Luxon oder date-fns für Nice Date-Manipulation.

Oder extrahieren Sie einfach den ersten Teil Ihres ISO-Strings, der bereits enthält, was Sie möchten. Hier ist ein Beispiel von splitting auf der T:

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

Moment wird die Datumsformatierung für Sie übernehmen. So fügen Sie es über ein Javascript-Tag hinzu und dann ein Beispiel, wie Moment verwendet wird, um ein Datum zu formatieren.

<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 ist eine ziemlich große Bibliothek, die für einen einzelnen Anwendungsfall verwendet werden kann. Empfehlen Sie stattdessen die Verwendung von date-fns . Es bietet im Grunde die meisten Funktionen von moment mit einer viel kleineren Bündelgröße und vielen 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

Zu beachten ist, dass der Browser im ISO-Zeitformat in der Regel von UTC-Zeit in lokale Zeitzone konvertiert. Obwohl dies eine einfache Anwendung ist, können Sie wahrscheinlich '2013-03-10T02:00:00Z'.substring(0, 10); ausführen.

Für komplexere Konvertierungen ist date-fns der richtige Weg.

7
Hozefa

Übergeben Sie Ihr Datum im Datumsobjekt.

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

Das Datum wird im Format JJJJ-MM-TT ausgegeben:

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

Das ist was ich nur mache um Datum zu bekommen, 

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

3
Aravindh Gopi

neues Datum (). toISOString (). Teilzeichenfolge (0, 10);

2
Ankita

Wenn Sie ein Datumsobjekt haben:

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

console.log(result)

oder

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

auf @rk rk lösung erweitern. Wenn Sie möchten, dass das Format die Uhrzeit enthält, können Sie der Zeichenfolge toTimeString() hinzufügen und den GMT-Teil wie folgt entfernen:

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

Dies kann durch Datum und Uhrzeit abgedeckt werden:

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

Ich habe das benutzt: 

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
}

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

0
Alan