📜  Moment.js moment().fromNow()函数(1)

📅  最后修改于: 2023-12-03 15:17:41.114000             🧑  作者: Mango

Moment.js 中的 moment().fromNow() 函数

Moment.js 是一个非常流行的 JavaScript 库,旨在解析、验证、操作和展示日期和时间值。它使开发人员能够轻松地从日期中提取信息,并提供了许多方便的函数来操作日期,比如计算时间间隔,格式化日期和时间等。其中一个非常有用的函数是 moment().fromNow(),它使我们能够很容易地获得一个日期字符串,描述该日期距离当前时间有多久。

使用方式

moment().fromNow() 函数的使用非常简单,我们只需要将一个日期对象传给 moment 函数,并在其后跟上 .fromNow()。如下所示:

moment(someDate).fromNow();

其中,someDate 可以是一个 JavaScript Date 对象,也可以是一个可识别日期时间格式的字符串。

下面的示例将展示如何使用 moment().fromNow() 函数:

const now = new Date(); // 当前时间
const futureDate = new Date(2022, 9, 1); // 未来时间

console.log(moment(now).fromNow()); // "a few seconds ago"
console.log(moment(futureDate).fromNow()); // "in a year"

运行结果中,第一条输出表示距离当前时间只有几秒钟,第二条输出表示未来的时间距离当前时间一年。

函数返回值

moment().fromNow() 函数返回一个描述时间差的字符串,该字符串写着类似于“2 天前”、“5 分钟前”、“3 年后”这样的描述。如果将它和当前时间进行比较,则返回值的形式将根据所传递的日期的时间间隔而有所不同。

下面的示例演示了如何获得 moment().fromNow() 函数的返回值:

const someDate = '2021-08-10T09:25:00.000Z'; 
console.log(moment(someDate).fromNow()); // "3 days ago"

在这个示例中,字符串 2021-08-10T09:25:00.000Z 被解析为一个日期对象,然后通过 moment().fromNow() 函数获得它距离当前时间的时间差。

支持的时间单位

moment().fromNow() 函数可以返回多种时间单位,包括:秒、分钟、小时、天、月和年。Moment.js 根据时间间隔自动选择应该使用哪个单位。

下面的示例展示了一个日期距离当前时间多久以后才能被描述成“明天”:

const tomorrow = moment().add(1, 'day');
console.log(tomorrow.fromNow()); // "in a day"
自定义标签

我们还可以自定义时间描述的标签,比如「过去」和「将来」。只需在 moment() 函数前加上 .startOf('day') 即可实现自定义标签。

const now = new Date(); // 当前时间
const futureDate = new Date(2022, 9, 1); // 未来时间

console.log(moment(now).startOf('day').fromNow()); // "today"
console.log(moment(futureDate).startOf('day').fromNow()); // "in 1 year"
结论

Moment.js 的 moment().fromNow() 函数是一个非常有用的日期字符串生成函数,它可以轻松地计算出日期距离当前时间有多久,并生成相应的字符串进行输出。通过设置一些自定义标签,我们可以很容易地更改这些字符串的格式。在操作日期时,Moment.js 是一个必不可少的库,它非常易于使用,且具有众多的功能,可以帮助我们处理各种日期时间相关的任务。