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

11

我的应用程序发送一个带有JavaScript的HTML文件,类似于:

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

使用 moment,在我设置区域设置时,有没有一种方法可以获取配置的短日期格式,例如对于fr,“'j F Y'”?

我找到了它,但这是hack-ish解决方案:

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

所以现在我的代码:

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

我不喜欢那样,有没有一种简洁的方式来获取格式?

2个回答

6
您可以使用 当前 localeData()longDateFormat() 方法来检索特定于语言环境的格式字符串:
moment.locale('fr');

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

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

1
日期格式的文档在哪里?我已经查阅了moment.js的文档,找到了相关引用但没有定义。 - Mike K

1

moment.js的后续版本提供了本地化格式化功能 - http://momentjs.com/docs/#/displaying/format/

本地化格式

由于偏好的格式因地区而异,有一些标记可以根据语言环境格式化moment。

同一格式有大写和小写变体。小写版本旨在成为其大写对应项的缩写版本。

时间 LT 下午8:30

带秒的时间LTS 下午8:30:25

月份数字、日期、年份 L 1986/09/04

l 1986/9/4

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

月份名称、日期、年份、时间 LLL 1986年9月4日 下午8:30

lll 9月4日 下午8:30

月份名称、日期、星期、年份、时间 LLLL 1986年9月4日 星期四 下午8:30

llll 星期四 9月4日 下午8:30

L、LL、LLL、LLLL、LT 可在版本1.3.0中使用。l、ll、lll、llll 可在2.0.0中使用。LTS 在2.8.4中添加。

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

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

问题是关于访问格式字符串,而不是使用MomentJS格式化日期值。 - John Rix

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接