You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Moment.js中基于ar-sa本地化自定义数值格式(显示0-9)

解决Moment.js自定义ar-sa本地化显示阿拉伯数字的问题

嘿,这个需求其实很容易实现!Moment.js的本地化配置里专门提供了numerals属性,用来定义日期中数值部分的显示格式。你只需要在自定义locale中覆盖这个属性,指定为0-9的阿拉伯数字数组就行。

完整的代码实现

moment.defineLocale('ar-sa-mine', {
  parentLocale: 'ar-sa',
  // 覆盖numerals属性,使用0-9的阿拉伯数字
  numerals: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
});

为什么这样有效?

默认的ar-sa本地化中,numerals属性被设置为阿拉伯文数字数组([٠, ١, ٢, ٣, ٤, ٥, ٦, ٧, ٨, ٩]),所以Moment.js会用这些字符渲染日期里的数字。当你在自定义locale中把这个数组替换成0-9的阿拉伯数字后,所有日期的数值部分(比如日、月、年)都会自动切换成你想要的格式。

测试验证

你可以用下面的代码快速验证效果:

// 切换到自定义本地化规则
moment.locale('ar-sa-mine');
// 输出当前日期,应该显示类似"29/05/2024"而非"٢٩/٠٥/٢٠٢٤"
console.log(moment().format('DD/MM/YYYY'));

这样就能完美实现你的需求啦!

内容的提问来源于stack exchange,提问作者Houssam Badri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:33:38