Làm thế nào để có được ngày hôm qua với Momentjs?


118

Vì vậy, câu hỏi của tôi rất đơn giản, làm thế nào để tôi có được ngày hôm qua với MomentJs? Trong Javascript nó rất đơn giản, tức là

today = new Date();
yesterday = new Date(today.setDate(today.getDate() - 1))

console.log(yesterday)

Nhưng làm cách nào để đạt được điều này với MomentJs?


3
moment (). add ('days', -1);
roeb

6
Ngoài ra còn có new Date(Date.now() - 8.64e7). ;-)
RobG

Câu trả lời:


190

Giống như này: moment().subtract(1, 'days'). Nó sẽ cung cấp cho bạn ngày hôm trước với cùng thời gian hiện tại chính xác trên máy tính cục bộ của bạn.


2
Đã thử điều này ở mệnh giá nhưng không hiệu quả với tôi. Tôi đã phải cung cấp một số loại định dạng cho kết quả. Ví dụ: 'thời điểm (). Trừ (1,' ngày '). Lịch ()' hoặc 'khoảnh khắc (). Trừ (1,' ngày '). ToDate ()' hoặc 'khoảnh khắc (). Trừ (1,' ngày ') .format ("MM / DD / YYYY")'
Andrew

94

Cũng thế :

moment().subtract(1, 'day')

Nó sẽ cung cấp cho bạn ngày hôm trước với cùng thời gian hiện tại chính xác trên máy tính cục bộ của bạn.


Tôi đang sử dụng phương pháp này từ một tháng trong một đoạn mã và tôi vừa phát hiện ra rằng phương pháp này không hoạt động đúng vào đầu tháng. Vì vậy, moment(date).subtract(-1, 'day')vào ngày đầu tiên trả lại ngày cuối cùng của tháng hiện tại thay vì ngày cuối cùng của tháng trước. Có ai biết thêm về?
3

bạn có thể thử với moment().subtract(1, 'day')thay vìmoment().subtract(-1, 'day')
Sai Ram

@sam quên trừ, chỉ là lỗi đánh máy. Có lý do nào tôi đã thử moment(date).add(-1, 'day')với cùng một kết quả.
3

36

Khi chúng ta biết ngày hôm qua, có ba khả năng

1. Nhận ngày hôm qua với thời gian hiện tại

moment().subtract(1, 'days').toString()

2. Nhận ngày hôm qua với ngày bắt đầu

moment().subtract(1, 'days').startOf('day').toString()      

3. Nhận ngày hôm qua với cuối ngày

moment().subtract(1, 'days').endOf('day').toString()


5

Bạn có thể dễ dàng trừ ngày khỏi thời điểm bằng cách sử dụng

var yesterday = moment().subtract(1, 'days')

Và để tìm ngày trước

var previousDay = moment('2017/11/6', 'YYYY/MM/DD').subtract(1, 'days')


3

Ngày hôm qua trong Momentjs ở định dạng DD-MM-YYYY.

const yesterdaydate = moment().subtract(1, "days").format("DD-MM-YYYY");
console.log(yesterdaydate)

0

Điều này đã làm việc cho tôi:

var yesterday = new Date(dateInput.getTime());
yesterday.setDate(yesterday.getDate() - 1);
console.log(yesterday);

var tomorrow = new Date(dateInput.getTime());
tomorrow.setDate(tomorrow.getDate() + 1);
console.log(tomorrow);

dateB = moment(yesterday).format("YYYYMMDD");
dateA = moment(tomorrow).format("YYYYMMDD");
console.log(dateB);
console.log(dateA);
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.