问问题
14257 次
5 回答
9
为您的格式使用设置默认值。
$.datepicker.setDefaults({
dateFormat: 'yy-mm-dd'
});
现在您的日期显示正确的格式(即 2013-06-12)
在这里更新了 JSFiddle:http: //jsfiddle.net/jaaqs/3/
于 2013-06-07T01:00:41.550 回答
3
您为日期选择器指定的日期格式 ( )yy-mm-dd
与默认日期格式 ( mm/dd/yy
) 不同。在您的代码中,UI 尝试解析2013-01-01
为哪个不解析(该函数在看到 a而不是mm/dd/yy
时放弃)。1
/
可能的修复是:
A. 明确使用您在 datepicker 选项中指定的相同日期格式:
$("#datepicker").datepicker({
dateFormat: "yy-mm-dd",
beforeShowDay: function (date) {
var date1 = $.datepicker.parseDate("yy-mm-dd", $("#input1").val());
var date2 = $.datepicker.parseDate("yy-mm-dd", $("#input2").val());
// ...
B. 按需获取 dateFormat:
$("#datepicker").datepicker({
beforeShowDay: function (date) {
var date1 = $.datepicker.parseDate($(this).datepicker("option", "dateFormat"), $("#input1").val());
var date2 = $.datepicker.parseDate($(this).datepicker("option", "dateFormat"), $("#input2").val());
// ...
在上面的示例中,$(this).datepicker("option", "dateFormat")
将返回当前 datepicker 使用的日期格式(无论是明确指定还是继承自 datepicker 默认值)。
于 2014-01-20T07:05:00.687 回答
1
你的日期格式是问题
$(function() {
$("#datepicker").datepicker({
dateFormat: "yy-mm-dd",
beforeShowDay: function(date) {
var date1 = $.datepicker.parseDate($(this).datepicker("option", "dateFormat"), $("#input1").val());
var date2 = $.datepicker.parseDate($(this).datepicker("option", "dateFormat"), $("#input2").val());
return [true, date1 && ((date.getTime() == date1.getTime()) || (date2 && date >= date1 && date <= date2)) ? "dp-highlight" : ""];
},
onSelect: function(dateText, inst) {
var date1 = $.datepicker.parseDate($(this).datepicker("option", "dateFormat"), $("#input1").val());
var date2 = $.datepicker.parseDate($(this).datepicker("option", "dateFormat"), $("#input2").val());
if (!date1 || date2) {
$("#input1").val(dateText);
$("#input2").val("");
$(this).datepicker("option", "minDate", dateText);
} else {
$("#input2").val(dateText);
$(this).datepicker("option", "minDate", null);
}
}
});
});
演示:小提琴
于 2013-06-07T01:03:03.303 回答
0
您还可以在 datepicker 的 JS 文件中更改日期格式设置
在第 26 行
你有这个
this.format = DPGlobal.parseFormat(options.format||this.element.data('date-format')||'mm/dd/yyyy');
您可以将其更改为您想要的任何内容,例如 GMT(英国日期设置)
this.format = DPGlobal.parseFormat(options.format||this.element.data('date-format')||'dd/mm/yyyy');
然而,这是一个全球性的变化
于 2014-10-17T13:22:43.300 回答
0
我不确定为什么,但是将格式化从大初始化块中移出是可行的。
$(function() {
$("#datePicker").datepicker({dateFormat: "mm-dd-yy"});
$("#datepicker").datepicker({
beforeShowDay: function(date) {
var date1 = $.datepicker.parseDate($.datepicker._defaults.dateFormat, $("#input1").val());
var date2 = $.datepicker.parseDate($.datepicker._defaults.dateFormat, $("#input2").val());
return [true, date1 && ((date.getTime() == date1.getTime()) || (date2 && date >= date1 && date <= date2)) ? "dp-highlight" : ""];
},
onSelect: function(dateText, inst) {
var date1 = $.datepicker.parseDate($.datepicker._defaults.dateFormat, $("#input1").val());
var date2 = $.datepicker.parseDate($.datepicker._defaults.dateFormat, $("#input2").val());
if (!date1 || date2) {
$("#input1").val(dateText);
$("#input2").val("");
$(this).datepicker("option", "minDate", dateText);
} else {
$("#input2").val(dateText);
$(this).datepicker("option", "minDate", null);
}
}
});
});
于 2013-06-07T00:54:47.663 回答