Javascript 矩js中的自定义长日期格式

Javascript 矩js中的自定义长日期格式,javascript,date,format,momentjs,Javascript,Date,Format,Momentjs,有没有一种方法可以根据区域设置为长日期的矩添加自定义格式代码 例如: moment().格式(“L”) 是一种现有格式,将打印区域设置的长日期(包括年份),但如果我想添加我自己的格式,则不包括以下年份: moment().format(“LTY”)在给定区域设置中只打印月份和日期 我如何才能做到这一点?请阅读上的部分。您可以使用以下命令替换默认的长日期格式对象: moment.updateLocale('en', { longDateFormat : {

有没有一种方法可以根据区域设置为长日期的矩添加自定义格式代码

例如:

moment().格式(“L”)

是一种现有格式,将打印区域设置的长日期(包括年份),但如果我想添加我自己的格式,则不包括以下年份:

moment().format(“LTY”)
在给定区域设置中只打印月份和日期

我如何才能做到这一点?

请阅读上的部分。您可以使用以下命令替换默认的长日期格式对象:

moment.updateLocale('en', {
                    longDateFormat : {
                    LT: "h:mm A",
                    LTS: "h:mm:ss A",
                    L: "MM/DD",         // Remove year
                    LL: "MMMM Do YYYY",
                    LLL: "MMMM Do YYYY LT",
                    LLLL: "dddd, MMMM Do YYYY LT"
                }
});
然后使用:

var x = moment().format('L');
矩分析传递到格式的字符串,以查找标记。如果要添加自定义标记(如“LTY”),还需要将其添加到本地格式化标记列表中:

var localFormattingTokens = /(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g;
将更改为(LTY已添加):

并使用新令牌更新默认的长日期格式:

    var defaultLongDateFormat = {
    LTY  : 'MM/DD HH:mm',   // format for new token
    LTS  : 'h:mm:ss A',
    LT   : 'h:mm A',
    L    : 'MM/DD/YYYY',
    LL   : 'MMMM D, YYYY',
    LLL  : 'MMMM D, YYYY h:mm A',
    LLLL : 'dddd, MMMM D, YYYY h:mm A'
};
然后,如果您需要其他格式:

moment.updateLocale('en', {
                    longDateFormat : {
                    LTY: 'MM/DD HH:mm',  // new format for token here
                    LT: "h:mm A",
                    LTS: "h:mm:ss A",
                    L: "MM/DD/YYYY",
                    LL: "MMMM Do YYYY",
                    LLL: "MMMM Do YYYY LT",
                    LLLL: "dddd, MMMM Do YYYY LT"
                }
});
最后:

var x = moment().format('LTY');
但您必须检查这将对其他代码产生什么影响。此外,每次更新moment.js源代码时,您都必须应用相同的更改,无法使用CDN,并且您的代码无法移植到使用标准moment.js库的其他站点

因此,坚持使用UpdateScale的方式做事。或者干脆做:

var LTY='MM/DD HH:MM';
var d=新力矩().格式(LTY);
控制台日志(d)

您在哪里设置localFormattingTokens?@Ben您必须编辑源代码(localFormattingTokens位于版本2.14.1的第559行)。我已经在上面演示了如何做,但由于给出的原因,我不推荐这样做。
var x = moment().format('LTY');