chuỗi ngàyJJJJ thêm 5 ngày


154

tôi có chuỗi ngày bắt đầu "20.03.2014" và tôi muốn thêm 5 ngày vào đây với khoảnh khắc.js nhưng tôi không nhận được ngày mới "25.03.2014" trong cửa sổ cảnh báo.

đây là mã javascript của tôi:

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

alert(new_date);

đây jsfiddle của tôi: http://jsfiddle.net/jbgUt/1/

Làm sao tôi có thể giải quyết việc này ?

Tôi thích định dạng chuỗi này "25.03.2014"

Hy vọng ai đó có thể giúp tôi.

Câu trả lời:


326

CẬP NHẬT: ngày 19 tháng 1 năm 2016

Tính đến thời điểm 2.8.4 - sử dụng .add(5, 'd')(hoặc .add(5, 'days')) thay vì.add('d', 5)

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

Cảm ơn @Bala về thông tin.

CẬP NHẬT: ngày 21 tháng 3 năm 2014

Đây là những gì bạn phải làm để có được định dạng đó.

Đây là một fiddle cập nhật

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

NGUỒN GỐC: ngày 20 tháng 3 năm 2014

Bạn không nói với nó như thế nào / đơn vị nào để thêm. Sử dụng -

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

tôi muốn xem định dạng này "25.03.2014" trong cửa sổ cảnh báo làm thế nào tôi có thể thực hiện điều này?
Dave

2
Kể từ giây phút 2.8.4, tôi có thể thấy tin nhắn không dùng nữa với add ('ngày', 5). Sử dụng thêm (5, 'ngày') thay thế.
Bala

.. Cú pháp đúng: thời điểm () thêm (5, 'ngày') định dạng ( "D / M / YYYY") Bạn có thể tìm kiếm một thời gian ở đây: momentjs.com/docs/#/manipulating/add
Costas Bakoulias

16

Hàm add () trả về ngày cũ, nhưng thay đổi ngày ban đầu :)

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

5
Vâng, đó là lạ. Khi kiểm tra moment(startdate).add(5, 'days')trong bảng điều khiển bạn nhận được Moment {_isAMomentObject: true, _i: "[the original date]",}, và tôi chắc chắn rằng addphương pháp này không hoạt động. Sau khi dành vài phút, tôi nhận ra phương pháp WAS hoạt động, bởi vì nếu bạn mở đối tượng bạn nhận được Moment _d : [The date with the addition] _f : "YYYY-MM-DDTHH:mm:ss" _i : [The original date]... Ngày thực sự đã thay đổi (bạn sẽ nhận được kết quả chính xác với moment(startdate).add(5, 'days').format('YYYYMMDD')), nhưng thật khó hiểu là dường như ngày đó đã không ' t thay đổi. : - |
Gilad Barner

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

phải định dạng và sau đó chuyển đổi sang khoảnh khắc một lần nữa.


Bạn đã tiết kiệm cho tôi rất nhiều phút :)
ivahidmontazer



3
  1. thêm https://momentjs.com/doads/moment-with-locales.js vào trang html của bạn
  2. var todayDate = moment().format('DD-MM-YYYY');//to get today date 06/03/2018 if you want to add extra day to your current date sau đó
  3. var dueDate = moment().add(15,'days').format('DD-MM-YYYY')// to add 15 days to current date..

điểm 2 và 3 đang sử dụng trong mã jquery của bạn ...


2

Bạn có thể giảm những gì họ nói trong một vài dòng mã:

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

Để có được một ví dụ làm việc thực tế sẽ trả về những gì người ta mong đợi:

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

đã cập nhật:

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

alert(new_date)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.