momentJS tarih dizesi 5 gün ekle


154

bir başlangıç ​​tarihi dize "20.03.2014" var ve moment.js ile bu 5 gün eklemek istiyorum ama uyarı penceresinde yeni tarih "25.03.2014" alamadım.

burada benim javascript kodu:

startdate = "20.03.2014";
var new_date = moment(startdate, "DD-MM-YYYY").add("DD-MM-YYYY", 5);

alert(new_date);

burada benim jsfiddle: http://jsfiddle.net/jbgUt/1/

Bunu Nasıl Çözebilirim ?

Bu dize biçimini beğendim "25.03.2014"

Umarım birisi bana yardım edebilir.

Yanıtlar:


326

GÜNCELLEME: 19 Ocak 2016

2.8.4'ten itibaren - yerine .add(5, 'd')(veya .add(5, 'days')) kullanın.add('d', 5)

var new_date = moment(startdate, "DD-MM-YYYY").add(5, 'days');

@Bala bilgi için teşekkürler.

GÜNCELLEME: 21 Mart 2014

Bu formatı almak için yapmanız gereken budur.

İşte güncellenmiş bir keman

startdate = "20.03.2014";
var new_date = moment(startdate, "DD-MM-YYYY").add('days', 5);

var day = new_date.format('DD');
var month = new_date.format('MM');
var year = new_date.format('YYYY');

alert(day + '.' + month + '.' + year);

ORİJİNAL: 20 Mart 2014

Nasıl / hangi birimi ekleyeceğinizi söylemiyorsunuz. Kullan -

 var new_date = moment(startdate, "DD-MM-YYYY").add('days', 5);

uyarı penceresinde bu biçimi "25.03.2014" görmek istiyorum nasıl uygulayabilirim?
Dave

2
Moment-2.8.4 itibariyle, add ('günler', 5) ile onaylanmamış mesajı görebiliyorum. Bunun yerine add (5, 'days') kullanın.
Bala

Doğru sözdizimi: moment (). Add (5, 'gün'). Biçimi ("D / M / YYYY") Burada bir süre bakabilirsiniz: momentjs.com/docs/#/manipulating/add
Costas Bakoulias

16

Add () işlevi eski tarihi döndürür, ancak orijinal tarihi değiştirir :)

startdate = "20.03.2014";
var new_date = moment(startdate, "DD.MM.YYYY");
new_date.add(5, 'days');
alert(new_date);

6
Evet bu garip. moment(startdate).add(5, 'days')Konsolu kontrol ederken alırsınız Moment {_isAMomentObject: true, _i: "[the original date]",}ve addyöntemin çalışmadığından emindim . Birkaç dakika geçirdikten sonra, WAS yönteminin çalıştığını fark ettim, çünkü aldığınız nesneyi açarsanız Moment _d : [The date with the addition] _f : "YYYY-MM-DDTHH:mm:ss" _i : [The original date]... Tarih gerçekten değişti (doğru sonucu alacaksınız moment(startdate).add(5, 'days').format('YYYYMMDD')), ancak tarihin olmadığı anlaşılıyor. t değişti. : - |
Gilad Barner

14
moment(moment('2015/04/09 16:00:00').add(7, 'd').format('YYYY/MM/DD HH:mm:mm'))

biçimlendirmeli ve sonra tekrar ana dönüştürmelidir.


Beni birkaç dakika kurtardın
:)




2

Birkaç kod satırında söylediklerini azaltabilirsiniz:

var nowPlusOneDay = moment().add('days', 1);
var nowPlusOneDayStr = nowPlusOneDay.format('YYYY-MM-DD');

alert('nowPlusOneDay Without Format(Unix Date):'+nowPlusOneDay);
alert('nowPlusOneDay Formatted(String):'+nowPlusOneDayStr);

2

Bekleneni döndüren gerçek bir çalışma örneği elde etmek için:

var startdate = "20.03.2014";
var new_date = moment(startdate, "DD.MM.YYYY");
var thing = new_date.add(5, 'days').format('DD/MM/YYYY');
window.console.log(thing)

0

güncellenmiş:

startdate = "20.03.2014";
var new_date = moment(startdate, "DD-MM-YYYY").add(5,'days');

alert(new_date)
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.