具有重用时刻值的momentjs自定义日历输出

时间:2018-04-05 09:01:21

标签: javascript calendar momentjs

在UI中,我们希望有一个本地化的字符串:

  • 如果日期是在同一天:“今天,02/06/201”
  • 如果是在第二天:“明天,02/07/201”
  • 如果是下周:“星期一,02/12/201”
  • 如果是晚些时候:“10天,02/16/201”

因此,例如对于法语区域设置,它将是:

  • 如果日期是在同一天:“Aujourd'hui,06/02/201”
  • 如果是在第二天:“Demain,07/02/201”
  • 如果是下周:“Lundi,12/02/201”
  • 如果是晚些时候:“En 10 jours,16/02/201”

如何用moment.js实现这一目标?请提供代码,而不是文档链接,我已阅读文档,但没有帮助。

我原本预计这适用于第一种情况: moment().calendar( null, { sameDay : '[Today], L', }); 但“今天”并没有得到本地化。对于德国人来说也是“今天”,它应该是“Heute”。因为我在想“今天”是关键字,用momentjs代替正确的本地化值。但实际上它只是文字字符串。

编辑04/06/2018(添加代码示例)

moment.locale('de');
var result = moment().calendar();
var result2 = moment().calendar( null, {
  sameDay : '[Today], L',
});
document.getElementById('result').innerHTML = result;
document.getElementById('result2').innerHTML = result2;
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.0/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.0/locale/de.js"></script>
<div id="result"></div>
<div id="result2"></div>

http://jsfiddle.net/8x4on1nf/11/

非常感谢

0 个答案:

没有答案