Javascript 在moment.js中本地化日和月
如何在moment.js中本地化当前日期和月份(不含年份)?我想要的正是Javascript 在moment.js中本地化日和月,javascript,momentjs,Javascript,Momentjs,如何在moment.js中本地化当前日期和月份(不含年份)?我想要的正是moment().format('LL')的输出,但没有年份部分 考虑以下示例: moment().locale('tr').format('LL') // "1 Haziran 2017" moment().locale('en').format('LL') // "June 1, 2017" 我想要的是: moment().locale('tr').format('??') // "1 Haziran" moment(
moment().format('LL')
的输出,但没有年份部分
考虑以下示例:
moment().locale('tr').format('LL') // "1 Haziran 2017"
moment().locale('en').format('LL') // "June 1, 2017"
我想要的是:
moment().locale('tr').format('??') // "1 Haziran"
moment().locale('en').format('??') // "June 1"
是否只需要字符串表示?如果是这样,只修剪输出末尾的最后5个字符可能会更容易,如下所示:
var today = moment().locale('tr').format('LL') // "1 Haziran 2017"
today = today.substring(0, today.length - 5); // "1 Haziran"
这将在未来8000年内有效,因此不必担心未来几年会破坏它
您甚至可以进行更智能的正则表达式匹配,或者从字符串中删除所有带有“20XX”的内容。不过,这取决于您对it的使用情况,与其说是直接解决方案,不如说是一种黑客解决方案。下面是一个如何工作的示例:
var d = moment().locale('tr');
console.log(d.format('D MMMM'));
jsiddle:对于所有受支持地区的易出错解决方案,您需要使用
删除年份。替换并检查是否有不必要的符号遗留:
函数getCurrDayAndMonth(区域设置){
var today=locale.format('LL');
今天回来
.replace(locale.format('YYYY'),'')//删除年份
.replace(//\s\s+/g',)//删除双空格(如果有)
.trim()//从起点和终点删除空格
.replace(/[БΓ]\./,'')//从RU/UK地区删除年份字母
.replace(/de$/,“”)//从PT中删除年份前缀
.replace(/b\.$/,“”)//从SE中删除年份前缀
.trim()//从起点和终点删除空格
.replace(/,$/g,);//从末尾删除逗号
}
[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+':',
getCurrDayAndMonth(矩().locale(localeName));
});代码>
这是一个显而易见的解决方案,但我想避免它,因为我不知道格式('LL')
到底是如何工作的。日期可能不会以年份结束,或者区域设置可以使用不同的数字系统。顺便说一下,是的,字符串表示就足够了:)啊,明白了。你想让它适用于所有语言吗?我建议转换ot语言环境,然后只选择内置格式的d和M。我只是浏览了一下源代码,我不相信有什么方法可以采用内置的区域设置格式,只删除其中的一部分(即年份)。您必须应用所需的格式(就像上面webbm所做的)moment().locale('en')。format('D MMMM')
是6月1日
。这绝对不是我想要的。请看一看我的例子。我想这是我能做的最好的了。谢谢你的回答!如果受“接受”重复问题的回答启发,请考虑“投票”。