Javascript 获取编号(日期)和加1(天)

Javascript 获取编号(日期)和加1(天),javascript,jquery,Javascript,Jquery,我正试图修改其他人的代码,这是一种迂回的方式,不幸的是,我别无选择 我有一个jQuery变量,它是var calc_date_to=jQuery('#date_to').val()获取输入框的值。此输入框的值为“04.02.2014”形式的数字,表示日期 我有另一个输入框,它接受这个日期并将它添加到它的值中,jQuery的这一位是$('date_to_new').val(calc_date_to),这一切都很完美 问题是,我想在第二个输入框中显示的数字需要提前一天。因此,如果“计算日期”的值为“

我正试图修改其他人的代码,这是一种迂回的方式,不幸的是,我别无选择

我有一个jQuery变量,它是
var calc_date_to=jQuery('#date_to').val()获取输入框的值。此输入框的值为“04.02.2014”形式的数字,表示日期

我有另一个输入框,它接受这个日期并将它添加到它的值中,jQuery的这一位是
$('date_to_new').val(calc_date_to),这一切都很完美

问题是,我想在第二个输入框中显示的数字需要提前一天。因此,如果“计算日期”的值为“2014年2月4日”,则我希望第二个输入框的值为“2014年2月5日”

非常感谢您的帮助。

诸如此类:

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

创建一个
日期对象,添加一天,然后渲染字符串:

// 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

在此处选中此示例:

使用日期库 <>我会认真考虑使用JavaScript日期库。moment.js是我的最爱

在这里获取:

最少的编码,最大的灵活性,而不必担心我们使用的日历系统的复杂性

然后你可以做:

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));

所有日期都本地化了吗?您是否担心本地化?您是否使用jQuery datepicker?此外,如果您多次需要这样做,我建议您引入一个类似于fantastic的日期处理库。这里需要注意的一点是(OP没有澄清),许多文化都会以不同的顺序编写日期。理想情况下,您应该让浏览器区域性解析字符串,然后使用不变量
.getYear()
.getMonth()
.getDate()
api。谢谢您的帮助,但我发现了一些奇怪的事情。如果原来的日期是“2014年3月21日”,那么新的日期是“3.9.26日”,等等。@DesignSubway我已经确定了。现在它是100%正确的,而且它不使用库。。。尝试只在需要时包含库!它们会大大降低你的页面加载速度,并使你的代码变慢…@IvanSeidel我完全不同意。说图书馆大大降低了你的页面加载速度是荒谬的。OP已经在使用约40kb的jQuery。假设他的页面像任何网页一样有css和图像,那么您需要下载几百kb的数据。Moment.js为9.3kb。这不会以任何方式减慢页面加载时间,从而让用户注意到。除此之外,这意味着他有一个经过良好测试、灵活且功能强大的数据库,它将数据运算的复杂性抽象出来,从而大大降低了我处理海量数据时出错的可能性(这是很高的)。1kb足以生成GB的数据。如果你这样想,那么40kb是不够的,再加上50kb甚至不够。15KB,为什么要考虑…最后,你将拥有avarage 1MB站点,witch现在是自然的,但不应该。考虑到图像、html、库。。。而且,页面加载中并不仅仅存在速度减慢的问题。我们需要解析和编译40kb的js,这也需要时间。对我的i7来说,它甚至能感觉到这样的东西,但对手机来说,情况会改变。只有在你真正需要的时候才使用图书馆,你会很开心的。在大多数情况下,库会为您节省开发时间。此外,我编写的代码有248字节。这比Moment.js少了大约40倍,如果他只打算“添加”一天,他们实际上也会这样做。JavaScript有一个相当不错的时间库,人们应该使用它来实现兼容性。