编程语言
首页 > 编程语言> > javascript-如何获得显示“昨天”而不是“一天前”的时间?

javascript-如何获得显示“昨天”而不是“一天前”的时间?

作者:互联网

我有以下代码,用于查找两个日期之间的人性化时差,问题是我不想有“一天前”的信息,而是显示“昨天”.

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>

解决方法:

这些可以在翻译文件中找到.您可以在relativeTime in en-gb.js at Line 42中进行更改:

d : 'yesterday',

但这仍显示为昨天.您可以更改的正确选择就是过去

past : '%s ago',

另外,在不更改源代码的情况下,我通过注入添加了以下内容:

moment.updateLocale('en-gb', {
  relativeTime: {
    past : '%s',
    d : 'yesterday'
  }
});

上面的方法可能无法在所有情况下都起作用,而应仅将其仅用于当前项目.

我在控制台中得到以下内容:

enter image description here

工作实例

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>

标签:momentjs,javascript
来源: https://codeday.me/bug/20191025/1924693.html