moment.calendar()没有时间

car*_*arl 23 javascript python momentjs

我想在没有时间的情况下使用moment.calendar()选项...所以不要"上周二下午5点"我想要"上周二".现在有人知道时刻是否有解决方案吗?我找到了这个小提琴http://jsfiddle.net/nawxZ/,它显然显示了一个解决方案,但我看不出它应该如何工作?谢谢卡尔

function log(str) {
    $('body').append('<p>' + str + '</p>');
}

log(moment().calendar());
log(moment().calendar(true));
Run Code Online (Sandbox Code Playgroud)

Far*_*uti 31

从2.10.5开始你可以做到:

moment(/*your date*/).calendar(null,{
    lastDay : '[Yesterday]',
    sameDay : '[Today]',
    nextDay : '[Tomorrow]',
    lastWeek : '[last] dddd',
    nextWeek : 'dddd',
    sameElse : 'L'
})
Run Code Online (Sandbox Code Playgroud)

请参阅:http://momentjs.com/docs/#/displaying/calendar-time/

  • 我做了,但结果没有翻译,只有'dddd'部分被翻译.它需要[今天]作为静态文本而不是动态本地化.请查看:https://github.com/moment/moment/issues/4439 (7认同)
  • 如何使它本地化?在语言环境“ en”中获取“ Today”,在语言环境“ de”中获取“ Heute”吗?谢谢 (3认同)

Hen*_*son 7

moment().calendar() 支持自定义格式化字符串和格式化函数。

moment().calendar();
>> "Today at 9:06 AM"
Run Code Online (Sandbox Code Playgroud)

然后设置格式化的字符串

moment.locale('yourlang', {
    calendar: {
        lastDay: function () {
            return '[last]';
        },
        sameDay: function () {
            return '[Today]';
        }
    }
});

moment().calendar();

// Will now output
>> "Today"
Run Code Online (Sandbox Code Playgroud)

应该做的伎俩。该文档是一个非常宝贵的源

  • 使用您的解决方案,我需要为应用程序的所有支持语言定义日历..:/ (4认同)
  • 今天似乎是同样的情况:/ (2认同)

Mah*_*man 6

这是完美的.试试吧.

(时刻(时间).calendar().split("at"))[0]

  • 在其他语言环境中不起作用,@ CREOFF甚至在某些语言环境中也不起作用。.因为在某些语言环境中,本周的未来一天有两个词。例如,在语言环境“ sk”中,它是“ Voštvrtoko 15:30”,意思是“在星期四15:30”。 (2认同)