当选择到期日时,我希望到目前为止可能有3-7天。 所以数据范围应该是最少3天和最多7天。
现在可以使用以下代码:
$(function() {
$.datepicker.setDefaults({minDate: 0, changeMonth: true, numberOfMonths: 1});
$('#datepicker').datepicker({onSelect: function(selectedDate) {
var newToDateStart=new Date(selectedDate);
newToDateStart.setDate(newToDateStart.getDate()+3)
var newToDateEnd=new Date(selectedDate);
newToDateEnd.setDate(newToDateEnd.getDate()+7);
$('#datepicker1').datepicker('option', 'minDate', newToDateStart);
$('#datepicker1').datepicker('option', 'maxDate', newToDateEnd);
setTimeout(function() { $('#datepicker1').focus(); }, 0);
}});
$('#datepicker1').datepicker({onSelect: function(selectedDate) {
}});
我的问题是格式。我想要它像dd-mm-yyyy。但是,当我这样做时,数据范围无法正常工作...当我今天选择作为开始日期时,第一个可能的日期是在1月份的一些...
现在适合我的解决方案:
$(function() {
$.datepicker.setDefaults({minDate: 0, changeMonth: true, numberOfMonths: 1, dateFormat: 'dd-mm-yy'});
$('#datepicker').datepicker({onSelect: function(selectedDate) {
$('#datepicker').datepicker({ dateFormat: 'dd-mm-yy' });
var d = selectedDate.substr(0,2); // retrieve the day from the string
var m = selectedDate.substr(3,2); // retrieve the month from the string
var y = selectedDate.substr(6,4); // retrive the year from the string
var newToDateStart=new Date(y,m-1,d); // month is zero-based, so subtract 1
newToDateStart.setDate(newToDateStart.getDate()+3)
var newToDateEnd=new Date(y,m-1,d);
newToDateEnd.setDate(newToDateEnd.getDate()+7);
$('#datepicker1').datepicker({ dateFormat: 'dd-mm-yy' });
$('#datepicker1').datepicker('option', 'minDate', newToDateStart);
$('#datepicker1').datepicker('option', 'maxDate', newToDateEnd);
setTimeout(function() { $('#datepicker1').focus(); }, 0);
}});
$('#datepicker1').datepicker({onSelect: function(selectedDate) {
}});
});
答案 0 :(得分:1)
好的,所以我相信发生的事情是你将你的selectedDate日期字符串(格式化为' dd-mm-yy')传入JavaScript函数Date()但函数我不知道前两位是日,第二位是月,第二位是年。所以你需要做的是分解selectedDate并将其重新格式化为Date()识别的日期字符串(例如mm / dd / yyyy)或将其分成单独的数字并传递给它们,如:
var d = selectedDate.substr(0,2); // retrieve the day from the string
var m = selectedDate.substr(3,2); // retrieve the month from the string
var y = selectedDate.substr(6,2); // retrive the year from the string
var newToDateStart=new Date(y,m-1,d); // month is zero-based, so subtract 1
注意:如果年份大概是15岁,你按原样将其传递给Date(),Date()可能会认为它是1915而不是2015.所以根据你的需要,你可能想要将y转换为一整年,而不仅仅是最后两位数。
答案 1 :(得分:0)
var formatedDate = YourDate.toISOString().substring(0, 10);