我正在使用jQueryUI Datepicker库,我需要为它提供一个动态加载日期的日期。
我设置了我的日期选择器:
$("#thePicker" ).datepicker({
dateFormat: 'yy-mm-dd',
showOtherMonths: true,
changeMonth: true,
changeYear: true,
minDate: new Date('2016-04-28'),
});
其中'2016-04-28'是一个在加载时可能会有所不同的字符串。
由于时区转换,这会将最低允许日期设置为2016年4月27日。
如果我提供了上面显示的格式的字符串,那么我应该如何为minDate构建这个新日期,以便没有时区相关?
答案 0 :(得分:1)
如果日期是一个字符串并且总是" YYYY-MM-DD",我会这样做:
https://fiddle.jshell.net/Twisty/eknxxqvh/
$(function() {
var dString = "2016-04-28";
var yy = parseInt(dString.substring(0, 4));
var mm = parseInt(dString.substring(5, 7)) - 1;
var dd = parseInt(dString.substring(8));
$("#thePicker").datepicker({
dateFormat: 'yy-mm-dd',
showOtherMonths: true,
changeMonth: true,
changeYear: true,
minDate: makeDate("2016-04-28"),
/* Alternate Method 1
minDate: new Date(yy, mm, dd),
/* Alternate Method 2
minDate: new Date(parseInt("2016-04-28".substring(0,4)), parseInt("2016-04-28".substring(5,7))-1, parseInt("2016-04-28".substring(8))),
*/
});
function makeDate(ds) {
var yy = parseInt(ds.substring(0, 4));
var mm = parseInt(ds.substring(5, 7)) - 1;
var dd = parseInt(ds.substring(8));
var d = new Date(yy, mm, dd);
return d;
}
});
根据您在页面中使用此功能的频率,将定义哪种方法最适合您。