我有以下代码,用于查找两个日期之间的人性化时差,问题是我不想有“一天前”,但要显示“昨天”。
function humanize(date) {
const then = moment.utc(date);
return then.fromNow();
}
function getYesterdayAsISO() {
var date = new Date();
date.setDate(date.getDate()-1);
return date.toISOString();
}
console.log(humanize(getYesterdayAsISO()));
<script src="https://momentjs.com/downloads/moment-with-locales.min.js"></script>
答案 0 :(得分:4)
这些在翻译文件中找到。您可以在relativeTime
in en-gb.js
at Line 42中进行更改:
d : 'yesterday',
但这仍然显示为yesterday ago
。您可以更改的正确选项是past
past : '%s ago',
此外,在不更改源代码的情况下,我通过注入添加了以下内容:
moment.updateLocale('en-gb', {
relativeTime: {
past : '%s',
d : 'yesterday'
}
});
上述内容可能无法在所有情况下都有效,并且应仅在当前项目中专门使用。
我在控制台中得到以下内容:
工作示例
moment.updateLocale('en-gb', {
relativeTime: {
past : '%s',
d : 'yesterday'
}
});
function humanize(date) {
const then = moment.utc(date);
return then.fromNow();
}
function getYesterdayAsISO() {
var date = new Date();
date.setDate(date.getDate()-1);
return date.toISOString();
}
console.log(humanize(getYesterdayAsISO()));
<script src="https://momentjs.com/downloads/moment-with-locales.min.js"></script>
答案 1 :(得分:0)
/membership
这是愚蠢的代码,但它解决了我的问题