如何根据用户区域设置使用自定义日期格式显示日期

时间:2017-03-22 07:23:02

标签: javascript angularjs momentjs

如何根据区域设置/语言格式使用“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'))?  

3 个答案:

答案 0 :(得分:1)

实现目标的最简单方法是:

  1. 时刻日期转换为 JavaScript Datemoment().toDate()
  2. 安装角度区域设置,负责根据区域设置调整日期
  3. 当您需要显示日期时使用$filter('date')
  4. 在这里,您可以找到使用AngularJS Angular i18n

    的国际化功能的指南

答案 1 :(得分: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

答案 2 :(得分: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