Dizeyi moment.js ile ayrıştır


Yanıtlar:


207

.format()İşlevi kullanmanız gerekir .

MM - Ay sayısı

MMM - Ay kelimesi

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

VAKTİNİ BOŞA HARCAMAK


Mevcut tarih değişkenleri hakkında. var date = moment("2014-02-27T10:00:00").format('DD-MM-YYYY'); var dateCalendarPart = moment(date).format('YYYY/MM/DD'); alert(date); alert(dateCalendarPart);Geçersiz bir tarih hatası veriyor ?????
Andrew Day

3
'' var dateCalendarPart = moment (tarih, 'YYYY / AA / GG'); alert (tarih); ''
ranjan

@AndrewDay ... "01-02-2017", "2 Ocak" veya "1 Şubat"? Momentjs aklını okuyamıyor.
yaprak

3
Bu yanıt yalnızca OP'nin dizesi standart bir Tarih biçiminde olduğu için çalışır. Stephen Paul'un cevabı, belirli bir formatta verilen herhangi bir dizenin manipüle edilebilecek bir tarihe nasıl dönüştürüleceğini gösterir.
Agamemnus

365

Kendimi her zaman buraya sadece başlığın ve sorunun tam olarak hizalanmadığını fark etmek için inişte buluyorum.

Bir dizeden bir an tarih istiyorsanız :

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

Gönderen an belgelerinde :

Moment.js, yerel Date.prototype öğesini değiştirmek yerine Date nesnesi için bir sarıcı oluşturur.

Bunun yerine bir dizeden bir javascript Date nesnesi istiyorsanız :

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

16
Evet, sadece bu cevap veriyor. Dizeyi tarihe ayrıştırma (giriş, str, dışarı tarihtir)
deathangel908

@ deathangel908 Lol, açıklamaya gerek yok, soru tamamen açık.
yaprak

20

Biçimi standart olduğundan moment.js'nin girdiyi ayrıştırmasına gerek yoktur:

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
ISO gerçekte bir dizeniz varsa moment.js'ye gerek yoktur ... ISO dizeleriyle çalıştığınızdan daha açık olmak için Date.parse komutunu da kullanabilirsiniz (yapıcı başka biçimler alabileceğinden)
Juan Mendes

3
IE8'de çalışmıyor ... Ne sürpriz ... Verir NaN.
yaprak

@JuanMendes, bağlantı diyor ki Date.parseçağrılar new Date, bu yüzden bir fark yaratmak olmamalıdır.
sk904861

6

an ihtiyacım olan şey için mükemmeldi. NOT saatleri ve dakikaları göz ardı eder ve izin verirseniz sadece bir şey yapar. API çağrım tarih ve saati geri getirdiğinden bu benim için mükemmeldi, ancak yalnızca tarihi önemsiyorum.

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
  • Herhangi bir dize tarihi nesne tarihiyle nasıl değiştirilir (moment.js ile de):

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);

  • moment.js ile:

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

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.