จะไปเดทเมื่อวานกับ Momentjs ได้อย่างไร?


118

คำถามของฉันง่ายมากฉันจะหา MomentJs เมื่อวานได้อย่างไร ใน Javascript นั้นง่ายมากเช่น

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

console.log(yesterday)

แต่ฉันจะบรรลุสิ่งนี้ด้วย MomentJs ได้อย่างไร


3
ช่วงเวลา (). เพิ่ม ('วัน', -1);
roeb

6
new Date(Date.now() - 8.64e7)นอกจากนี้ยังมี ;-)
RobG

คำตอบ:


190

เช่นนี้: moment().subtract(1, 'days'). มันจะให้วันก่อนหน้ากับเวลาปัจจุบันที่แน่นอนเดียวกับที่อยู่ในเครื่องพีซีของคุณ


2
พยายามสิ่งนี้ตามมูลค่า แต่ไม่ได้ผลสำหรับฉัน ฉันต้องระบุรูปแบบบางประเภทให้กับผลลัพธ์ เช่น 'moment (). ลบ (1,' วัน '). ปฏิทิน ()' หรือ 'ช่วงเวลา (). ลบ (1,' วัน '). toDate ()' หรือ 'ช่วงเวลา () ลบ (1,' วัน ') .format ("MM / DD / YYYY")'
แอนดรูว์

94

นอกจากนี้:

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

มันจะให้วันก่อนหน้ากับเวลาปัจจุบันที่แน่นอนเดียวกับที่อยู่ในเครื่องพีซีของคุณ


ฉันใช้วิธีนี้ตั้งแต่หนึ่งเดือนในตัวอย่างข้อมูลและฉันเพิ่งพบว่าวิธีนี้ใช้ไม่ได้ผลเมื่อต้นเดือน ดังนั้นmoment(date).subtract(-1, 'day')ในวันแรกให้ย้อนกลับวันสุดท้ายของเดือนปัจจุบันแทนที่จะเป็นวันสุดท้ายของเดือนก่อนหน้า มีใครทราบข้อมูลเพิ่มเติมเกี่ยวกับ?
3

ลองด้วยmoment().subtract(1, 'day')แทนmoment().subtract(-1, 'day')
สายราม

@sam ลืมเครื่องหมายลบเป็นเพียงการพิมพ์ผิด มีสาเหตุหรือไม่ที่ฉันลองmoment(date).add(-1, 'day')ใช้ผลลัพธ์เดียวกัน
3ky

36

เมื่อเราได้รับวันที่ของเมื่อวานมีสามสิ่งที่เป็นไปได้

1. รับวันที่เมื่อวานพร้อมเวลาปัจจุบัน

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

2. รับวันที่เมื่อวานพร้อมเริ่มต้นวัน

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

3. รับวันที่เมื่อวานพร้อมจุดสิ้นสุดของวัน

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


5

คุณสามารถลบวันออกจากช่วงเวลาได้อย่างง่ายดายโดยใช้

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

และสำหรับการค้นหาวันที่ก่อนหน้า

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



0

สิ่งนี้ใช้ได้ผลสำหรับฉัน:

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);
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.