Javascript 如何返回正确的月份?

Javascript 如何返回正确的月份?,javascript,html,datetime,Javascript,Html,Datetime,第一个日期应为2017年3月28日,但返回日期为2017年2月28日 第一次约会后的几个月似乎是正确的 有没有更好的方法,或者有人能帮我弄清楚为什么第一次约会会这样 var日期=新日期(“2017年3月28日星期二13:14:00 GMT+0100(英国夏令时)”; var additionalMonth=date.getMonth(); 函数addZero(i){ 如果(i

第一个日期应为2017年3月28日,但返回日期为2017年2月28日

第一次约会后的几个月似乎是正确的

有没有更好的方法,或者有人能帮我弄清楚为什么第一次约会会这样

var日期=新日期(“2017年3月28日星期二13:14:00 GMT+0100(英国夏令时)”;
var additionalMonth=date.getMonth();
函数addZero(i){
如果(i<10){
i=“0”+i;
}
返回i;
}
函数formatDateToString(d){
变量月份=“”+(d.getMonth()+1);
var day=''+d.getDate();
var year=d.getFullYear();
var hour=d.getHours();
var minute=d.getMinutes();
var second=d.getSeconds();
如果(月长<2)月='0'+月;
如果(日长<2)天='0'+天;
小时=加零(小时);
分钟=加零(分钟);
秒=加零(秒);
变量日期=[日、月、年]。加入('/');
var time=[hour,minute,second].join(“:”);
var newDate=日期+“”+时间;
返回newDate;
}
函数setTimeOrDate(日期){
日期.设定时间(12);;
日期。设置分钟数(0);
日期。设置秒(0);
返回日期;
}
函数计算日期(日期、月份){
日期。设置月(月);
日期=设置时间顺序(日期);
返回日期;
}
函数CalculatesDayMonth(日期,天){
var month=date.getMonth();
var year=date.getFullYear();
var d=新日期(年、月、0).getDate();
如果(天>=d){
日期=新日期(年、月、0);
}
日期=设置时间顺序(日期);
返回日期;
}
函数returnFormattedDate(开始日期,附加月份){
var day=startDate.getDate();
var newDate=计算日期(起始日期,额外月份);
var correctDate=calculateLastDayMonth(新日期,天);
返回formatDateToString(更正日期);
}
$(“.returnedDate”).text(“开始日期:”+returnFormattedDate(日期,附加月份));

对于(var x=0;x您必须将
var month=date.getMonth();
更改为var month=date.getMonth()+1;
,因为索引从
0
开始

var日期=新日期(“2017年3月28日星期二13:14:00 GMT+0100(英国夏令时)”;
var additionalMonth=date.getMonth();
函数addZero(i){
如果(i<10){
i=“0”+i;
}
返回i;
}
函数formatDateToString(d){
变量月份=“”+(d.getMonth()+1);
var day=''+d.getDate();
var year=d.getFullYear();
var hour=d.getHours();
var minute=d.getMinutes();
var second=d.getSeconds();
如果(月长<2)月='0'+月;
如果(日长<2)天='0'+天;
小时=加零(小时);
分钟=加零(分钟);
秒=加零(秒);
变量日期=[日、月、年]。加入('/');
var time=[hour,minute,second].join(“:”);
var newDate=日期+“”+时间;
返回newDate;
}
函数setTimeOrDate(日期){
日期.设定时间(12);;
日期。设置分钟数(0);
日期。设置秒(0);
返回日期;
}
函数计算日期(日期、月份){
日期。设置月(月);
日期=设置时间顺序(日期);
返回日期;
}
函数CalculatesDayMonth(日期,天){
var month=date.getMonth()+1;
var year=date.getFullYear();
var d=新日期(年、月、0).getDate();
如果(天>=d){
日期=新日期(年、月、0);
}
日期=设置时间顺序(日期);
返回日期;
}
函数returnFormattedDate(开始日期,附加月份){
var day=startDate.getDate();
var newDate=计算日期(起始日期,额外月份);
var correctDate=calculateLastDayMonth(新日期,天);
返回formatDateToString(更正日期);
}
$(“.returnedDate”).text(“开始日期:”+returnFormattedDate(日期,附加月份));

对于(var x=0;x,您有两种不同的方法:

var additionalMonth = date.getMonth();

JS返回从
0
开始计算的月份,因此一月的月份是
0
,二月的月份是
1
,等等,所以如果您想要正确的数字,您需要添加
1
,就像您对
月份的情况一样。您也可以检查这个



您应该向月份添加1,因为月份索引以0开头;

请更改calculateLastDayMonth()函数中的行。 var month=date.getMonth()+1;也就是说,您需要添加+1,它可以正常工作

请查找下面提到的更新代码:

var日期=新日期(“2017年3月28日星期二13:14:00 GMT+0100(英国夏令时)”;
var additionalMonth=date.getMonth();
函数addZero(i){
如果(i<10){
i=“0”+i;
}
返回i;
}
函数formatDateToString(d){
变量月份=“”+(d.getMonth()+1);
var day=''+d.getDate();
var year=d.getFullYear();
var hour=d.getHours();
var minute=d.getMinutes();
var second=d.getSeconds();
如果(月长<2)月='0'+月;
如果(日长<2)天='0'+天;
小时=加零(小时);
分钟=加零(分钟);
秒=加零(秒);
变量日期=[日、月、年]。加入('/');
var time=[hour,minute,second].join(“:”);
var newDate=日期+“”+时间;
返回newDate;
}
函数setTimeOrDate(日期){
日期.设定时间(12);;
日期。设置分钟数(0);
日期。设置秒(0);
返回日期;
}
函数计算日期(日期、月份){
日期。设置月(月);
日期=设置时间顺序(日期);
返回日期;
}
函数CalculatesDayMonth(日期,天){
var month=date.getMonth()+1;
var year=date.getFullYear();
var d=新日期(年、月、0).getDate();
如果(天>=d){
日期=新日期(年、月、0);
}
日期=设置时间顺序(日期);
返回日期;
}
函数returnFormattedDate(开始日期,附加月份){
var day=startDate.getDate();
var newDate=计算日期(起始日期,额外月份);
var correctDate=calculateLastDayMonth(新日期,天);
返回formatDateToString(更正日期);
}
$(“.returnedDate”).text(“开始日期:”+returnFormattedDate(日期,附加月份));

对于(var x=0;x),我的第一个建议是使用momentjs,这使得处理日期更容易。
var month = '' + (d.getMonth() + 1);
var month = date.getMonth() + 1;