如何使用jquery datepicker将一天添加到日期
Posted
技术标签:
【中文标题】如何使用jquery datepicker将一天添加到日期【英文标题】:how to add a day to a date using jquery datepicker 【发布时间】:2011-01-02 13:38:47 【问题描述】:我的网站上有 2 个文本框,分别使用 jquery 日期选择器来填写取件日期和送件日期。
我无法将还车日期值设置为比所选取货日期早一天。
这是我所拥有的:
$('.pickupDate').change(function()
var date2 = $('.pickupDate').datepicker('getDate', '+1d');
$('.dropoffDate').datepicker('setDate', date2);
);
上述内容将执行,但下车文本框中的值将与提货值匹配,而不是提前一天。例如:如果我选择 01-01-2010,上面的代码会在下拉框中返回 01-01-2010 而不是 02-01-2010。
有什么想法吗?
感谢您的帮助, 丰富
【问题讨论】:
【参考方案1】:试试这个:
$('.pickupDate').change(function()
var date2 = $('.pickupDate').datepicker('getDate', '+1d');
date2.setDate(date2.getDate()+1);
$('.dropoffDate').datepicker('setDate', date2);
);
【讨论】:
谢谢。工作了一个享受:) 以上对我也有用。但是为什么第 2 行的“+1d”部分呢?我从第二行中删除了“+1d”,它也可以工作。 很好的解决方案,尝试了 10 种其他方法来增加 javascript 中的日期,但都没有奏效。 第 2 行中的@thd '+1d' 不需要Datepicker getDate 您知道为什么如果尝试将第三行和第四行简化为$('.dropoffDate').datepicker('setDate', date2.getDate()+1);
之类的内容会失败并增加 2 天而不是 1 天吗?演示:jsfiddle.net/507Lwkeb【参考方案2】:
这个答案确实帮助我入门(菜鸟) - 但是当我将开始日期设置为 2014 年 12 月 31 日并添加 +1 以默认结束日期时,我遇到了一些奇怪的行为。我没有给我 01/01/2015 的结束日期,而是得到 02/01/2015 (!!!)。此版本会解析开始日期的组成部分,以避免这些年终异常。
$( "#date_start" ).datepicker(
minDate: 0,
dateFormat: "mm/dd/yy",
onSelect: function(selected)
$("#date_end").datepicker("option","minDate", selected); // mindate on the End datepicker cannot be less than start date already selected.
var date = $(this).datepicker('getDate');
var tempStartDate = new Date(date);
var default_end = new Date(tempStartDate.getFullYear(), tempStartDate.getMonth(), tempStartDate.getDate()+1); //this parses date to overcome new year date weirdness
$('#date_end').datepicker('setDate', default_end); // Set as default
);
$( "#date_end" ).datepicker(
minDate: 0,
dateFormat: "mm/dd/yy",
onSelect: function(selected)
$("#date_start").datepicker("option","maxDate", selected); // maxdate on the Start datepicker cannot be more than end date selected.
);
【讨论】:
这个答案对我有用。接受的答案不起作用。猜猜这可能取决于日期选择器的版本?无论如何,谢谢你!【参考方案3】:datepicker('setDate') 在 datepicker 中设置日期而不是在输入中。
您应该添加日期并将其设置在输入中。
var date2 = $('.pickupDate').datepicker('getDate');
var nextDayDate = new Date();
nextDayDate.setDate(date2.getDate() + 1);
$('input').val(nextDayDate);
【讨论】:
我以前有过,但是当我使用它时,它只会输出像“Sun Jan 17 2010 00:00:00 GMT+0000 (GMT Standard Time)”而不是“17-01-2010”即使我指定了 dateformat 选项。很奇怪。不过感谢您的帮助。 @RichardReddy 输出 'Sun Jan 17 2010 00:00:00 GMT+0000 (GMT Standard Time)' 是正确的。nextDayDate
holds a Date
object,所以当分配给输入 val 时,会发生 toString
隐式转换。以上是关于如何使用jquery datepicker将一天添加到日期的主要内容,如果未能解决你的问题,请参考以下文章
jquery.datepicker怎么指定日期为每个月最后一天???
jQuery DatePicker:如何将年份数组传递给 yearRange 下拉列表