【发布时间】:2014-08-25 18:23:02
【问题描述】:
当我从我的日期选择器中选择一个日期时,我让它以月年格式显示,看起来像 july 2014 。
好吧,我必须将此格式转换为 dd/mm/yyyy 或其他格式,但是当我传入 new Date() 时,它应该是有效的。
我用于获取月份年份的日期选择器绑定代码
ko.bindingHandlers.enddate = {
init: function (element, valueAccessor) {
var value = ko.utils.unwrapObservable(valueAccessor());
if (value && typeof value === 'object') {
$(element).datepicker(value);
}
else {
$(element).datepicker({
changeMonth: true,
changeYear: true,
dateFormat: 'MM yy',
onClose: function (dateText, inst) {
var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
$(this).datepicker('setDate', new Date(year, month, 1));
}
})
}
}
};
让我证明我在这里所做的事情是正确的。我需要日期应该是Date() 可以理解的格式,因为当我从自定义的 Datepicker 中选择时,我会传递我选择的日期(这将是可观察的)。
Senario 1: var dateformat= new Date("dd/mm/yyy") --> 可以正常工作
Senario 2: var dateformat= new Date("july 2014") --> 日期无效,所以我打算转换为 dd/mm/yyyy 并做进一步的处理
【问题讨论】:
-
使用
new Date("1 " + month + " " + year)将您的月/年字符串转换为 JS 日期对象 -
甚至
new Date(month + " 1 " + year)。 -
如果我有
july 2014作为我的输入,那么如何动态分隔月份和年份?
标签: jquery knockout.js datepicker