Analysieren Sie den aktuellen String mit moment.js


Antworten:


204

Sie müssen die .format()Funktion verwenden.

MM - Monatszahl

MMM - Monatswort

var date = moment("2014-02-27T10:00:00").format('DD-MM-YYYY');
var dateMonthAsWord = moment("2014-02-27T10:00:00").format('DD-MMM-YYYY');

GEIGE


Was ist mit vorhandenen Datumsvariablen? var date = moment("2014-02-27T10:00:00").format('DD-MM-YYYY'); var dateCalendarPart = moment(date).format('YYYY/MM/DD'); alert(date); alert(dateCalendarPart);Gibt einen ungültigen Datumsfehler aus ?????
— Andrew Day

3
try '' var dateCalendarPart = moment (Datum, 'JJJJ / MM / TT'); Alarm (Datum); ''
— Ranjan

@ AndrewDay ... "01-02-2017", "2. Januar" oder "1. Februar"? Momentjs können deine Gedanken nicht lesen.
— Blatt

3
Diese Antwort funktioniert nur, weil die Zeichenfolge des OP in einem Standard-Datumsformat vorliegt. Die Antwort von Stephen Paul zeigt, wie eine Zeichenfolge in einem bestimmten Format in ein Datum konvertiert werden kann, das manipuliert werden kann.
— Agamemnus

360

Ich scheine immer hier zu landen, nur um zu erkennen, dass Titel und Frage nicht ganz übereinstimmen.

Wenn Sie ein Momentdatum aus einer Zeichenfolge möchten :

const myMoment = moment(str, 'YYYY-MM-DD')

Ab Moment Dokumentation :

Anstatt den nativen Date.prototype zu ändern, erstellt Moment.js einen Wrapper für das Date-Objekt.

Wenn Sie stattdessen ein Javascript-Datumsobjekt aus einer Zeichenfolge möchten :

const myDate = moment(str, 'YYYY-MM-DD').toDate();

16
Ja, nur dieser antwortet. Parsing String bis Datum (was bedeutet, Eingabe ist str, out ist Datum)
— Deathangel908

@ Deathangel908 Lol, es besteht kein Klärungsbedarf, die Frage ist völlig klar.
— Blatt

20

Moment.js muss nicht analysiert werden, da das Format das Standardformat ist:

var date = new Date('2014-02-27T10:00:00');
var formatted = moment(date).format('D MMMM YYYY');

http://es5.github.io/#x15.9.1.15


1
Das ist die Wahrheit, Sie brauchen moment.js nicht, wenn Sie eine ISO-Datumszeichenfolge haben ... Sie können auch Date.parse verwenden , um klarer zu machen, dass Sie mit ISO-Zeichenfolgen arbeiten (da der Konstruktor andere Formate annehmen kann)
— Juan Mendes

3
Funktioniert nicht in IE8 ... Was für eine Überraschung ... gibt NaN.
— Blatt

@JuanMendes, sagt Ihr Link, der Date.parseanruft new Date, also sollte es keinen Unterschied machen.
— sk904861

6

Moment war perfekt für das, was ich brauchte. HINWEIS: Es ignoriert die Stunden und Minuten und macht es nur, wenn Sie es zulassen. Dies war perfekt für mich, da mein API-Aufruf Datum und Uhrzeit zurückbringt, mir aber nur das Datum wichtig ist.

function momentTest() {

  var varDate = "2018-01-19 18:05:01.423";
  var myDate =  moment(varDate,"YYYY-MM-DD").format("DD-MM-YYYY");
  var todayDate = moment().format("DD-MM-YYYY");  
  var yesterdayDate = moment().subtract(1, 'days').format("DD-MM-YYYY");   
  var tomorrowDate = moment().add(1, 'days').format("DD-MM-YYYY");

  alert(todayDate);

  if (myDate == todayDate) {
    alert("date is today");
  } else if (myDate == yesterdayDate) {
    alert("date is yesterday");
  } else if (myDate == tomorrowDate) {
    alert("date is tomorrow");
  } else {
    alert("It's not today, tomorrow or yesterday!");
  }
}


0
  • So ändern Sie ein Zeichenfolgendatum in ein Objektdatum (auch mit moment.js):

let startDate = "2019-01-16T20:00:00.000"; let endDate = "2019-02-11T20:00:00.000"; let sDate = new Date(startDate); let eDate = new Date(endDate);

  • mit moment.js:

startDate = moment(sDate); endDate = moment(eDate);

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.