引导日期拾取器多种格式
Bootstrap datepicker multiple formats
我在我的表单中使用了一个Bootstrap Datepicker的Backbone.js。
简要说明是允许客户使用"dd.mm"。所以我在日期选择器上设置了这个选项。
self.$el.find('[data-role="invoicedate"]').datepicker({
format: "dd.mm.yyyy",
todayBtn: "linked",
todayHighlight: true,
language: Application_language
});
然后客户希望允许'dd.mm。yy'也,并有它的自动翻译,所以我做了以下:
invoicedateToModel: function() {
var invoicedate = this.$el.find('[data-role="invoicedate"]').val();
var re2 = /^('d{2})'.('d{2})'.('d{2})$/;
if (re2.test(invoicedate)) {
invoicedate = invoicedate.replace(re2,"$1.$2.20$3");
}
var re4 = /^('d{2})'.('d{2})'.('d{4})$/;
if (re4.test(invoicedate)) {
this.saveInvoiceDate(invoicedate);
this.displayInvoiceDate();
this.$el.find('[data-role="invoicedate"]').parent().toggleClass('has-error', false);
} else {
this.$el.find('[data-role="invoicedate"]').parent().toggleClass('has-error', true);
}
},
并将其绑定到输入上的更改事件。我现在意识到,这工作得很好,因为dd.mm.yy符合dd.mm.yyyy格式,也就是说,它与dd.mm.yyyy格式并不矛盾。
现在客户端还希望能够添加ddmmyyyy作为输入选项,但是日期选择器通过将新输入的日期替换为最后一个已知的正确日期或今天的日期来自动更正表单,因为ddmmyyyy与dd.mm不匹配。Yyyy,在上面的回调被调用之前。
是否有办法告诉bootstrap-datepicker关于多个允许的格式?
可以将函数传递给datepicker的格式选项。对于真正灵活的解析,我使用moment.js。
$(".datepicker").datepicker({
format: {
toDisplay: function(date, format, language) {
return moment(date).format("MM/DD/YYYY");
},
toValue: function(date, format, language) {
return moment(date, ["DD.MM.YYYY", "DDMMYYYY"]).toDate();
}
}
});
从bootstrap-datepicker文档:
toDisplay:函数(日期,格式,语言)将日期对象转换为字符串,将存储在输入字段
toValue:将字符串对象转换为日期的函数(日期,格式,语言),用于日期选择
您可能不得不使用moment()
选项,但您应该能够将其放到您想要的位置。查看momentjs的文档
相关文章:
- JavaScript 时刻格式日期字符串
- 时刻.js转换 MM/dd/yyyy 格式日期
- JQGrid - 日期过滤器不适用于日期格式(日期(1453636335000))
- Jquery UI 日期选择器设置日期不适用于格式日期的动态更改
- 解析网页上的自由格式日期条目
- Javascript - 查找两个 MM-dd-yyyy HH:mm:ss 格式日期之间的秒数
- Javascript格式日期
- angularJs指令格式日期
- 如何解析 yyyy-MM-dd HH:mm:ss.javascript中的SSS格式日期
- JS原生格式日期方法
- JavaScript格式日期从DDMMYYYY到DD/MM/YYYY
- 不能转换成正确的格式日期&来自fullcalendar事件对象的小时
- 从unix - time格式日期为yyyy-mm-dd
- 如何在引导日历中将英语格式日期更改为西班牙语
- 使用包含英国格式日期的字符串设置new Date()
- 解析ISO-8601格式日期在ie9中不工作
- 格式日期从dd/MM/yyy hh: MM:ss到yyyy/MM/dd hh: MM:ss
- 如何获得正确的格式日期在前一个月与谷歌应用程序脚本
- Moment js格式日期与时区
- 格式日期&在kendo.ui.GridColumn