Javascript 使用momentjs将当前区域设置中的日期设置为月份

Javascript 使用momentjs将当前区域设置中的日期设置为月份,javascript,internationalization,momentjs,Javascript,Internationalization,Momentjs,Moment.js有一个方便的格式(l,l,ll,ll,lll,lll,llll)用于在当前区域设置中格式化日期 问题是,这种格式将日期包括在内。例如,moment('1986-02-05')。格式('LL')将作为1986年2月5日输出 这对我不起作用的原因是我只想显示日期,只想显示月份。用英语说,那将是1896年2月 是否有一种方法可以根据区域设置仅格式化月份和年份?如果不使用momentjs,则使用任何其他库。我还需要一个字符串列表的链接,我可以将其传递到公共区域设置的.format。请参

Moment.js有一个方便的格式(
l
l
ll
ll
lll
lll
llll
)用于在当前区域设置中格式化日期

问题是,这种格式将日期包括在内。例如,
moment('1986-02-05')。格式('LL')
将作为
1986年2月5日
输出

这对我不起作用的原因是我只想显示日期,只想显示月份。用英语说,那将是1896年2月


是否有一种方法可以根据区域设置仅格式化月份和年份?如果不使用momentjs,则使用任何其他库。我还需要一个字符串列表的链接,我可以将其传递到公共区域设置的
.format

请参阅下面的代码以了解所需的格式,它可以工作:

moment.locale('en');
var date = moment(new Date());
console.log(date.format('MMMM YYYY'));

有关所需格式,请参考以下代码,它将起作用:

moment.locale('en');
var date = moment(new Date());
console.log(date.format('MMMM YYYY'));
有关可用于显示日期和时间的令牌列表,请参见momentjs文档

在您的情况下,月份名称的相关代币是
MMM
,年份的相关代币是
yyy
。不要忘记加载您需要使用的每个区域设置,如前所述

您可以使用函数来更改给定时刻实例的区域设置,如果需要,也可以


编辑:

没有内置的方法来获取您正在查找的本地化输入,但您可以使用矩和
longDateFormat
获取
LL
(月名、月日、年)的本地化格式,然后操纵以剥离月日部分。以下代码段适用于许多语言环境,但它没有显示每个语言环境的预期输出(有些失败:
es
eu
lt
,…)

我的建议是定义受支持的区域设置的子集,并手动定义边缘案例的格式

函数getMonthYear(值){
地点(值);
//获取区域设置数据
var localeData=moment.localeData();
var format=localeData.longDateFormat('LL');
//管理定制案例
如果(值=='br'){
格式='MMMM YYYY';
}
如果(值=='en-ca'){
格式='MMMM,YYYY';
}
//如果(值===…)可能是其他情况
//从第一部分开始检查区域设置格式和条带日期
如果(格式匹配(/^D/g)){
格式=格式。替换(/^D\。/,'')。替换(/^D/,'');
}
format=format.trim();
返回力矩('1986-02-05')。格式(格式);
}
[af',ar dz',ar kw',ar ly',ar ma',ar sa',ar tn',ar',az',be',bg',bn',bo',br',bs',ca',cs',cv',cy',da',de at',de ch',de',dv el',en au en ca',en gb',en ie',en nz',eo es',es',et',eu fa',fi',fo',fr ca',fr ch',fr',fy',gd gl',gom latn he he hi hr',hu hu ch,‘hy am’、‘id’、‘is’、‘it’、‘ja’、‘jv’、‘ka’、‘kk’、‘km’、‘kn’、‘ko’、‘ky’、‘lb’、‘lo’、‘lt’、‘lv’、‘me’、‘mi’、‘mk’、‘ml’、‘mr’、‘ms my’、‘ms’、‘my’、‘nb’、‘ne’、‘nl be’、‘nl’、‘nl’、‘nn’、‘pa in’、‘pl’、‘pt-br’、‘pt-br’、‘pt’、‘pt’、‘pt’、‘ro’、‘ro,'tzm latn','tzm','uk','ur','uz latn','uz','vi','x-pseudo','yo','zh cn','zh hk','zh tw']{
console.log(
localeName+':',
getMonthYear(localeName));
});
有关可用于显示日期和时间的令牌列表,请参见momentjs文档

在您的情况下,月份名称的相关代币是
MMM
,年份的相关代币是
yyy
。不要忘记加载您需要使用的每个区域设置,如前所述

您可以使用函数来更改给定时刻实例的区域设置,如果需要,也可以


编辑:

没有内置的方法来获取您正在查找的本地化输入,但您可以使用矩和
longDateFormat
获取
LL
(月名、月日、年)的本地化格式,然后操纵以剥离月日部分。以下代码段适用于许多语言环境,但它没有显示每个语言环境的预期输出(有些失败:
es
eu
lt
,…)

我的建议是定义受支持的区域设置的子集,并手动定义边缘案例的格式

函数getMonthYear(值){
地点(值);
//获取区域设置数据
var localeData=moment.localeData();
var format=localeData.longDateFormat('LL');
//管理定制案例
如果(值=='br'){
格式='MMMM YYYY';
}
如果(值=='en-ca'){
格式='MMMM,YYYY';
}
//如果(值===…)可能是其他情况
//从第一部分开始检查区域设置格式和条带日期
如果(格式匹配(/^D/g)){
格式=格式。替换(/^D\。/,'')。替换(/^D/,'');
}
format=format.trim();
返回力矩('1986-02-05')。格式(格式);
}
[af',ar dz',ar kw',ar ly',ar ma',ar sa',ar tn',ar',az',be',bg',bn',bo',br',bs',ca',cs',cv',cy',da',de at',de ch',de',dv el',en au en ca',en gb',en ie',en nz',eo es',es',et',eu fa',fi',fo',fr ca',fr ch',fr',fy',gd gl',gom latn he he hi hr',hu hu ch,‘hy am’、‘id’、‘is’、‘it’、‘ja’、‘jv’、‘ka’、‘kk’、‘km’、‘kn’、‘ko’、‘ky’、‘lb’、‘lo’、‘lt’、‘lv’、‘me’、‘mi’、‘mk’、‘ml’、‘mr’、‘ms my’、‘ms’、‘my’、‘nb’、‘ne’、‘nl be’、‘nl’、‘nl’、‘nn’、‘pa in’、‘pl’、‘pt-br’、‘pt-br’、‘pt’、‘pt’、‘pt’、‘ro’、‘ro,'tzm latn','tzm','uk','ur','uz latn','uz','vi','x-pseudo','yo','zh cn','zh hk','zh tw']{
console.log(
localeName+':',
getMonthYear(localeName));
});

您可以在此处查看我的工作代码:它不会工作,因为在某些语言中,必须在