moment.js:如何获得短日期格式?

时间:2015-12-10 23:03:16

标签: javascript momentjs

我的应用程序使用这样的javascript发送HTML文件:

$(function () {
    moment.locale('fr');
    $('#datetimepicker9').datetimepicker({
        viewMode: 'years',
        locale: 'fr',
        format: '' /* <========= problem! */
    });
});

暂时,当我设置为区域设置时,有没有办法为'j F Y'获取类似“fr”的配置的短日期格式?

我找到了它,但它是黑客的:

moment()['_locale']['_longDateFormat']['L']

现在我的代码:

$(function () {
    moment.locale('fr');
    $('#datetimepicker9').datetimepicker({
        viewMode: 'years',
        locale: 'fr',
        format: moment()['_locale']['_longDateFormat']['L']
    });
});

我不喜欢这样,是否有一种干净的方式来获取格式?

2 个答案:

答案 0 :(得分:4)

您可以使用the current localeData()longDateFormat()检索特定于语言环境的格式字符串:

moment.locale('fr');

var localeData = moment.localeData();
var dateFormat = localeData.longDateFormat('LL');

console.log(dateFormat); // D MMMM YYYY

答案 1 :(得分:2)

更新版本的moment.js具有可用的本地化格式 - http://momentjs.com/docs/#/displaying/format/

  

本地化格式

     

由于首选格式因区域设置而异,因此有一些格式   可用于根据区域设置格式化时刻的标记。

     

相同格式有大小写变体。该   小写版本旨在成为其缩短版本   大写对应。

     

Time LT 8:30 PM

     

时间秒LTS 8:30:25 PM

     

月份数字,月份日,年份L 09/04/1986

     

l 9/4/1986

     

月份名称,日期,年份LL 1986年9月4日1986年9月4日ll

     

月份名称,日期,年份,时间LLL 1986年9月4日晚上8:30

     

lll 1986年9月4日晚上8:30

     

月份名称,日期,星期几,年份,时间LLLL 1986年9月4日星期四晚上8:30

     

llll Thu,1986年9月4日晚上8:30

      L LL LLL LLLL LT可用于   版本1.3.0。 lll lll llll在2.0.0中可用。 LTS被加入   2.8.4。

因此,您可以使用以下方式获取本地化的短日期格式:

var formattedDate = moment(d).format("l");