momentjs 自定义日历输出并重用时刻值

Luc*_*oke 5 javascript calendar momentjs

在 UI 中有一个地方我们想要本地化字符串:

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

例如,对于法语语言环境,它将是:

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

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

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

编辑 2018 年 4 月 6 日(添加代码示例)

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;
Run Code Online (Sandbox Code Playgroud)
<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>
Run Code Online (Sandbox Code Playgroud)

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

非常感谢