使用其他语言时Bootstrap datepicker错误:Uncaught TypeError:无法读取未定义的属性“length”

我正在使用Bootstrap中的datepicker( http://bootstrap-datepicker.readthedocs.org/en/latest/i18n.html )。 当使用没有“language”属性的datepicker时,它可以工作,但是当我尝试指定一种语言(“sv”)时,它会失败并显示消息(即尝试在小部件中选择日期时):

未捕获的TypeError:无法读取未定义的属性“长度”

这些是我正在使用的版本:

jQuery v1.8.3

jQuery UI 1.8.22

Boostrap 2.3.1

从查看调试器看来,这是崩溃的代码(Datetimepicker.prototype,带有“p:”的行):

formatDate: function (date, format, language, type) { if (date == null) { return ''; } var val; if (type == 'standard') { val = { // year yy: date.getUTCFullYear().toString().substring(2), yyyy: date.getUTCFullYear(), // month m: date.getUTCMonth() + 1, M: dates[language].monthsShort[date.getUTCMonth()], MM: dates[language].months[date.getUTCMonth()], // day d: date.getUTCDate(), D: dates[language].daysShort[date.getUTCDay()], DD: dates[language].days[date.getUTCDay()], p: (dates[language].meridiem.length == 2 ? dates[language].meridiem[date.getUTCHours() < 12 ? 0 : 1] : ''), // hour h: date.getUTCHours(), // minute i: date.getUTCMinutes(), // second s: date.getUTCSeconds() }; 

这是工作代码(英文小部件):

  var dates = $('#date-picker input[name=from_date], .facet-container input[name=to_date]').datetimepicker({ format: 'yyyy-mm-dd', autoclose:'true', todayBtn:'true', pickerPosition:'bottom-left', minView:'month' }).on('changeDate', function(ev){ }); 

这崩溃了:

  $.fn.datetimepicker.dates['sv'] = { days: ["Söndag", "Måndag", "Tisdag", "Onsdag", "Torsdag", "Fredag", "Lördag"], daysShort: ["Sön", "Mån", "Tis", "Ons", "Tor", "Fre", "Lör"], daysMin: ["Sö", "Må", "Ti", "On", "To", "Fr", "Lö"], months: ["Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"], monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"], today: "Idag", clear: "Rensa" }; var dates = $('#date-picker input[name=from_date], .facet-container input[name=to_date]').datetimepicker({ format: 'yyyy-mm-dd', autoclose:'true', weekStart: 1, language:'sv', todayBtn:'true', pickerPosition:'bottom-left', minView:'month' }).on('changeDate', function(ev){ }); 

可能是什么问题呢??

这修复了它,即必须添加“meridiem”属性:

  $.fn.datetimepicker.dates['sv'] = { days: ["Söndag", "Måndag", "Tisdag", "Onsdag", "Torsdag", "Fredag", "Lördag"], daysShort: ["Sön", "Mån", "Tis", "Ons", "Tor", "Fre", "Lör"], daysMin: ["Sö", "Må", "Ti", "On", "To", "Fr", "Lö"], months: ["Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December"], monthsShort: ["Jan", "Feb", "Mar", "Apr", "Maj", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dec"], meridiem: '', today: "Idag", clear: "Rensa" };