如何将Momentjs的calendarFormat设置为默认值?

问题描述

我在SPA应用程序中使用了Momentjs
我的初衷是使用calendarFormat页面的一部分中自定义日历,并在其他部分使用认的calendarFormat
不幸的是,我不知道如何设置认的calendarFormat。

还有主意吗?

解决方法

Ciao,您可以定义一个defaultCalendar对象,并在想要显示默认日历格式时使用它:

let defaultCalendar = {
        sameDay: '[Today]',nextDay: '[Tomorrow]',nextWeek: 'dddd',lastDay: '[Yesterday]',lastWeek: '[Last] dddd',sameElse: 'DD/MM/YYYY'
    };

let anotherCalendar = {
        sameDay: 'DD/MM/YYYY',nextDay: 'DD/MM/YYYY',nextWeek: 'DD/MM/YYYY',lastDay: 'DD/MM/YYYY',lastWeek: 'DD/MM/YYYY',sameElse: 'DD/MM/YYYY'
    };

console.log(moment().calendar(null,defaultCalendar));

console.log(moment().calendar(null,anotherCalendar));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>

,

我想出了一个巧妙的解决方案:

const defaultCalendarFormat = moment.calendarFormat;
moment.calendarFormat = myCalendarFormat;
moment.calendarFormat = defaultCalendarFormat;