2017-03-22 28 views
0

如何根据区域/语言格式显示使用“moment.js”的日期(某些语言默认使用不同的日期格式进行表示),还能够自定义格式按需求:如何根据用户区域使用自定义日期格式显示日期

e.g-> How can I show time using moment in this format: Sunday, January 1 2012 using moment.js which will be 2012年1月1日(日)in japan automatically. Moment library does not provide this customization by default. 
i.e.-> Sunday, January 1 2012 (Using moment().format('LLLL'))? 

回答

0

我找到的解决方案是更新现有的时刻语言环境格式或使用时刻获取语言环境格式,根据需要修改它并使用。步骤如下:

  1. 使用moment.js按照区域设置(或语言)获取格式。

    var localeFormat = moment.langData()._longDateFormat['LLLL'];//for moment v2.5.1 
    
  2. 根据自定义格式需要修改localeFormat

    localeFormat.replace("LT","") 
    

    它将替换以默认语言环境格式显示的时间值。例如:

    Sunday, January 1 2012 12:45 pm更改为Sunday, January 1 2012

1

最简单的方式来实现你想要的是以下之一:

  1. 将您瞬间日期为的JavaScriptDatemoment().toDate()
  2. 根据语言环境
  3. 使用$filter('date')当你需要显示你的约会

在这里你可以找到一个指南,使用AngularJS的国际化功能安装角区域它负责调节日期Angular i18n

1

你可以自定义一些结合矩量法:

var moment = require('moment'); 
var date = moment().format('dddd, MMMM D YYYY'); 
console.log(date); // gives you the date in the format you need 
+1

@svarog此解决方案不适用于日语语言环境。在日本,时间格式不同。 – manoj

+0

检测本地/语言是否为日语并提供不同的格式。 goto [momentjs](https://momentjs.com/),向下滚动,点击'japanese'按钮,网站应该显示日文格式 – svarog

+0

不是检测所有语言和编写逻辑的可行解决方案。无论如何,谢谢。我找到了解决方案。 – manoj

相关问题