我正在尝试修改其他人的代码,因此采用迂回的方式执行此操作,遗憾的是我没有选择。
我有一个jQuery变量var calc_date_to = jQuery('#date_to').val();
,它获取输入框的值。此输入框的值是“04 .02.2014”形式的数字,表示日期。
我有另一个输入框,它接受这个日期并将其添加到它的值,这个jQuery的位是$('#date_to_new').val(calc_date_to);
,这一切都很完美。
问题是,我要在第二个输入框中显示的数字需要提前一天。因此,如果'calc_date_to'的值为'04 .02.2014',那么我希望第二个输入框的值为'05 .02.2014'。
感谢任何帮助。
答案 0 :(得分:1)
创建一个Date
对象,添加一天,然后渲染字符串egain:
// Parse date
var raw = "31.12.2014".split(".");
var myDate = new Date(raw[2], raw[1]-1, raw[0]);
// Add one day
myDate.setDate(myDate.getDate()+1);
// Render date
var final = [myDate.getDate(), myDate.getMonth()+1, myDate.getFullYear()].join(".");
注意:使用-1
和+1
,因为日期库使用0
作为第一个月,而不是1
。< / p>
在此处查看此示例:http://jsfiddle.net/hyYNp/
答案 1 :(得分:1)
我会认真考虑使用Javascript日期库。 moment.js是我最喜欢的。
在此处获取:http://momentjs.com/
最小的编码,最大的灵活性,而不必担心我们使用的日历系统的复杂性。
然后你可以这样做:
var format = 'DD.MM.YYYY'; //assuming this is always the format
var calc_date_to = jQuery('#date_to').val();
var firstDate = moment(calc_date_to, format);
var secondDate = firstDate.add('d',1);
$('#date_to_new').val(secondDate.format(format));
答案 2 :(得分:0)
这样的事情:
function calcDate(str) {
var d = str.split('.');
return new Date ( new Date(d[2],d[1]-1,d[0]).getTime() + 24 * 60 * 60 * 1000 );
}
calcDate('04.02.2014');
// OUTPUTS
// Date {Wed Feb 05 2014 00:00:00 GMT+0100 (Central Europe Standard Time)}
这将从该字符串创建日期对象,提取时间戳,添加一天中的刻度数,并返回+1天的新日期对象。