Moment.js 自定义相对时间
Moment.js 非常容易进行自定义。一般来说,您应该使用自定义设置来创建一个区域设置。
在本文中,我们将详细讨论moment.js如何自定义相对时间,并附有示例。
moment.updateLocale() 函数允许我们获得相对时间的帮助。它帮助我们满足处理相对时间的需求。
语法:
moment.updateLocale('en', {
relativeTime : Object
});
参数:
- relativeTime: 必须为Moment对象设置的相对时间。这是一个可选参数。
返回: 它将以字符串形式返回输出。
注意: 这在普通的Node.js程序中不起作用,因为它需要安装全局或项目目录中的外部 Moment.js库。有关详细信息,请参阅此 链接 。
可以使用以下命令安装Moment.js:
moment 模块的安装:
npm install moment
示例1: 在这个示例中,我们简单地使用 moment.updateLocale() 函数来获取以秒为单位的相对时间,该相对时间将作为参数传递给相对时间,并返回具有相对时间的字符串。
// Importing moment module
const moment = require('moment');
let localeData = moment.updateLocale('en', {
relativeTime: {
future: "in %s",
past: "%s ago",
s: 'Welcome to GeeksForGeeks, a few seconds',
ss: '%d seconds',
m: "a minute",
mm: "%d minutes",
h: "an hour",
hh: "%d hours",
d: "a day",
dd: "%d days",
M: "a month",
MM: "%d months",
y: "a year",
yy: "%d years"
}
});
let a = moment().fromNow();
console.log("The relative time is :", a);
输出:
The relative time is : Welcome to GeeksForGeeks, a few seconds ago
示例2: 在这个示例中,我们正在使用moment.updateLocale()函数来获取相对时间,以秒和分钟为单位,除此之外,我们还使用fromNow(0)函数来获取相对时间与当前时间进行比较,然后返回相对时间。
// Importing moment module
const moment = require('moment');
const m1 = moment().subtract(10, 'm');
const m2 = moment().subtract(25, 's');
console.log(m1.fromNow());
console.log(m2.fromNow());
moment.updateLocale('en', {
relativeTime: {
future: "in %s",
past: "%s ago",
s: function (number, withoutSuffix, key, isFuture) {
return '00:' + (number < 10 ? '0' : '')
+ number + ' minutes';
},
m: "01:00 minutes",
mm: function (number, withoutSuffix, key, isFuture) {
return (number < 10 ? '0' : '')
+ number + ':00' + ' minutes';
},
h: "an hour",
hh: "%d hours",
d: "a day",
dd: "%d days",
M: "a month",
MM: "%d months",
y: "a year",
yy: "%d years"
}
});
console.log(m1.fromNow());
console.log(m2.fromNow());
输出:
10 minutes ago
a few seconds ago
10:00 minutes ago
00:25 minutes ago
参考: https://momentjs.com/docs/#/customization/relative-time/