Stringa di analisi fino ad oggi con moment.js


Risposte:


205

Devi usare la .format()funzione.

MM - Numero del mese

MMM - Parola del mese

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

VIOLINO


Che dire delle variabili di data esistenti. var date = moment("2014-02-27T10:00:00").format('DD-MM-YYYY'); var dateCalendarPart = moment(date).format('YYYY/MM/DD'); alert(date); alert(dateCalendarPart);Fornisce un errore di data non valido ?????
Andrew Day,

3
provare '' var dateCalendarPart = moment (date, 'YYYY / MM / DD'); alert (data); ''
ranjan,

@AndrewDay ... "01-02-2017", "2 gennaio" o "1 febbraio"? Momentjs non riesce a leggere la tua mente.
foglia

3
Questa risposta funziona solo perché la stringa dell'OP è in un formato data standard. La risposta di Stephen Paul mostra come convertire qualsiasi stringa, dato un formato specifico, in una data che può essere manipolata.
Agamemnus,

363

Mi sembra sempre di atterrare qui solo per rendermi conto che il titolo e la domanda non sono del tutto allineati.

Se vuoi una data del momento da una stringa :

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

Dal momento della documentazione :

Invece di modificare il Date.prototype nativo, Moment.js crea un wrapper per l'oggetto Date.

Se invece desideri un oggetto Date javascript da una stringa :

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

16
Sì, solo questo risponde. Analizzare la stringa fino ad oggi (significa che l'input è str, out is date)
deathangel908

@ deathangel908 Lol, non è necessario un chiarimento, la domanda è perfettamente chiara.
foglia

20

Non è necessario che moment.js analizzi l'input poiché il suo formato è quello standard:

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
Questa è la verità, non c'è bisogno di moment.js se hai una stringa di date ISO ... Puoi anche usare Date.parse per essere più chiaro che stai lavorando con stringhe ISO (dal momento che il costruttore può prendere altri formati)
Juan Mendes

3
Non funziona in IE8 ... Che sorpresa ... Dà NaN.
foglia

@JuanMendes, dice il tuo link, che Date.parsechiama new Date, quindi non dovrebbe fare la differenza.
sk904861

6

il momento è stato perfetto per quello di cui avevo bisogno. NOTA ignora le ore e i minuti e fa solo cosa se lo lasci fare. Questo è stato perfetto per me poiché la mia chiamata API riporta la data e l'ora, ma mi interessa solo la data.

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
  • Come modificare qualsiasi data stringa in data oggetto (anche con 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);

  • con moment.js:

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

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.