2014-11-03 15 views
6

Có cách nào so sánh 2 ngày không có thời gian với momentJS không?MomentJS Ngày khác biệt ngày chỉ trừ thời gian

Tôi đã thử các định dạng khác nhau, nhưng dường như không thể làm cho nó hoạt động.

Tôi có nó làm việc tốt với datetime:

var ExpiryDate = new Date("11/13/2014 11:13:00"); 
var daysDiff = moment(ExpiryDate).diff(moment(Date.now()), 'days'); 

tôi đang tìm cách để có được kết quả là 14 ngày không có vấn đề gì thời gian trong ngày.

Cảm ơn

+0

nếu bạn muốn thêm một ngày dựa trên thời gian, sau đó so sánh timepart hai ngày và thêm, nếu cần ... – harishr

Trả lời

16

Bạn có thể sử dụng startOf chức năng để loại bỏ các thành phần thời gian của cả hai ngày

moment(ExpiryDate).startOf('day').diff(moment(Date.now()).startOf('day'), 'days'); 
+3

Lưu ý: Phương pháp này thay đổi ngày ban đầu. Đối với 'ngày', nghĩa đen đặt phút, giây và giờ cho đối tượng * hiện tại * thành 0 (vì vậy nó rất nhanh). Trong trường hợp này, bạn đang tạo một đối tượng mới và thay đổi nó để không có tác dụng phụ thực sự nhưng nếu bạn đã làm 'ExpiryDate.startOf ('day')' mà không tạo một 'thời điểm' mới thì nó sẽ thay đổi bản gốc. Đây là triển khai nếu bạn tò mò: https://github.com/moment/moment/blob/497f918515ae6ab900f008f19523b1e4ae5e2450/src/lib/moment/start-end-of.js –

Các vấn đề liên quan