如何使用moment.jsfromNow方法获取天数

How to get days with moment.js fromNow method

本文关键字:获取 方法 jsfromNow 何使用 moment      更新时间:2023-09-26

我想用momentjs获得从一个日期到现在的天数
我试过fromNow()。该方法以字符串形式返回值
它的单位变化取决于范围的长度。

var m = moment("2014-01-01");  // or whatever start date you have
var today = moment().startOf('day');
var days = Math.round(moment.duration(today - m).asDays());

或者,如果你愿意,最后一行可以简化:

var days = Math.round((today - m) / 86400000);

请注意,即使指定的开始日期没有时间(假设为午夜),由于夏令时可能会导致UTC偏移量的差异,因此仍然需要四舍五入才能获得整数。

如果您仍然想使用Moment来获得"In X days"或"X days ago",您可以使用Moment.from(date)而不是Moment.fromNow()

https://momentjs.com/docs/#/displaying/from/

var today = new Date();
today.setHours(0, 0, 0, 0);
dateToCheck.setHours(0, 0, 0, 0)
moment(dateToCheck).from(today);

或一个单行

moment(dateToCheck.setHours(0, 0, 0, 0)).from(new Date().setHours(0, 0, 0, 0));

const date1 = moment('06-11-2021')
const date2 = moment('06-12-2021')
const diff = date2.diff(date1, 'days')   
console.log("diff: ", diff); // diff: 1