获取号码(日期)加1(天)

时间:2014-02-04 16:06:07

标签: javascript jquery

我正在尝试修改其他人的代码,因此采用迂回的方式执行此操作,遗憾的是我没有选择。

我有一个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'。

感谢任何帮助。

3 个答案:

答案 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天的新日期对象。