我有两个带有dateFromat
属性的日期选择器,我在调试器中获得以下值:
dateText = "27.05.2016"
begin = Invalid Date {}
d=NaN
m=NaN
y=NaN
有没有办法让这个日期格式适合我的例子?我认为Date()
函数无法将此日期格式的值转换为日期...
没有dateFormat
的示例:http://jsbin.com/yuxaliqoba/edit?html,output
dateFormat
的示例:http://jsbin.com/hihidihexo/edit?html,output
<input class="datepicker begin" type="text" />
<input class="datepicker end" type="text"/>
<script>
$(function () {
$(".datepicker.begin").datepicker({
minDate: '+2d',
maxDate: '+2y',
dateFormat: 'dd.mm.yy',
onSelect: function(dateText, inst) {
// Resolve the current date
var begin = new Date($(this).val());
var d = begin.getDate();
var m = begin.getMonth();
var y = begin.getFullYear();
// Update your target date
$(".datepicker.end").datepicker('setDate', new Date(y, m, d+2));
$(".datepicker.end").datepicker( "option", "minDate", d - 10);
}
});
$(".datepicker.end").datepicker({
dateFormat: 'dd.mm.yy',
minDate: '+4d',
maxDate: '+2y'
});
});
</script>
答案 0 :(得分:1)
您的问题源于27.05.2016是无效日期的事实。正如你在这个小提琴中看到的那样。
https://jsfiddle.net/mp64p6Lw/2/
使用27.05.2016实例化新的日期对象返回&#34;无效的日期&#34;。因此,调用get *()将不会返回您期望的内容。
我建议将日期格式更改为ISO 8601日期格式,以便日期操作更稳定。
var dateISO = new Date('2016-05-27');
当您实例化日期选择器时,您需要将dd.mm.yy
更改为yy-mm-dd
。