2015-12-10 130 views
3

我的應用程序發送JavaScript的HTML文件中像這樣:moment.js:如何獲取短日期格式?

$(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

您可以檢索特定於區域的格式字符串與longDateFormat()the current localeData()的:可用moment.js的

moment.locale('fr'); 

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

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

其中,是日期格式的文檔?我瀏覽了moment.js文檔並找到對它們的引用,但沒有定義。 –

2

更高版本具有本地化的格式 - http://momentjs.com/docs/#/displaying/format/

本地化格式

因爲首選的格式根據語言環境而不同,有幾個 令牌可用於格式化一個片刻編輯它的語言環境。

在相同的格式上有大寫和小寫的變體。小寫的 旨在成爲其大寫副本的縮寫版本 。

時間LT下午8:30

時間秒LTS下午8點三十零分25秒

月數字,月日,l年1986年9月4日

升9/4/1986

月份名稱,月份的一天,一年LL 1986年9月4日LL 1986年9月4日

月份名稱,1986年9月4日8:30 PM個月,一年時間LLL的一天0

LLL 1986年9月4日下午8:30

月份名稱,月日,星期幾,一年時間LLLL週四,1986年9月4日下午8:30

LLLL週四,1986年9月4日8:30 PM

L LL LLL LLLL LT可在 版本1.3.0中獲得。我會在2.0.0中提供。 LTS添加到 2.8.4。

所以,你可以得到本地化的短日期格式:

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

問題在於訪問格式字符串,而不是使用MomentJS格式化日期值。 –