gpt4 book ai didi

javascript - 如何返回正确的月份?

转载 作者:行者123 更新时间:2023-12-03 07:25:56 26 4
gpt4 key购买 nike

第一个日期应该是 28/03/2017,但返回的结果是 28/02/2017

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

有更好的方法吗?或者有人可以帮我弄清楚为什么第一次约会会这样吗?

var date = new Date("Tue Mar 28 2017 13:14:00 GMT+0100 (BST)");
var additionalMonth = date.getMonth();

function addZero(i) {
if (i < 10) {
i = "0" + i;
}
return i;
}

function formatDateToString(d){
var month = '' + (d.getMonth() + 1);
var day = '' + d.getDate();
var year = d.getFullYear();
var hour = d.getHours();
var minute = d.getMinutes();
var second = d.getSeconds();

if (month.length < 2) month = '0' + month;
if (day.length < 2) day = '0' + day;
hour = addZero(hour);
minute = addZero(minute);
second = addZero(second);

var date = [day, month, year].join('/');
var time = [hour, minute, second].join(':');

var newDate = date + " " + time;
return newDate;
}

function setTimeForDate(date){
date.setHours(12);
date.setMinutes(0);
date.setSeconds(0);
return date;
}

function calculateDate(date, month){
date.setMonth(month);
date = setTimeForDate(date);
return date;
}

function calculateLastDayMonth(date, day){
var month = date.getMonth();
var year = date.getFullYear();
var d = new Date(year, month, 0).getDate();
if(day >= d){
date = new Date(year, month, 0);
}
date = setTimeForDate(date);
return date;
}

function returnFormattedDate(startDate, additionalMonth){
var day = startDate.getDate();
var newDate = calculateDate(startDate, additionalMonth);
var correctDate = calculateLastDayMonth(newDate, day);
return formatDateToString(correctDate);
}

$(".returnedDate").text("START DATE: " + returnFormattedDate(date, additionalMonth));

for(var x = 0; x <= 5; x++){
$("body").append(returnFormattedDate(date, additionalMonth) + "<br>");
additionalMonth++;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<h5 class="returnedDate"></h5>

最佳答案

你必须改变var month = date.getMonth(); to var month = date.getMonth()+1;因为索引从 0 开始.

var date = new Date("Tue Mar 28 2017 13:14:00 GMT+0100 (BST)");
var additionalMonth = date.getMonth();

function addZero(i) {
if (i < 10) {
i = "0" + i;
}
return i;
}

function formatDateToString(d){
var month = '' + (d.getMonth() + 1);
var day = '' + d.getDate();
var year = d.getFullYear();
var hour = d.getHours();
var minute = d.getMinutes();
var second = d.getSeconds();

if (month.length < 2) month = '0' + month;
if (day.length < 2) day = '0' + day;
hour = addZero(hour);
minute = addZero(minute);
second = addZero(second);

var date = [day, month, year].join('/');
var time = [hour, minute, second].join(':');

var newDate = date + " " + time;
return newDate;
}

function setTimeForDate(date){
date.setHours(12);
date.setMinutes(0);
date.setSeconds(0);
return date;
}

function calculateDate(date, month){
date.setMonth(month);
date = setTimeForDate(date);
return date;
}

function calculateLastDayMonth(date, day){
var month = date.getMonth()+1;
var year = date.getFullYear();
var d = new Date(year, month, 0).getDate();
if(day >= d){
date = new Date(year, month, 0);
}
date = setTimeForDate(date);
return date;
}

function returnFormattedDate(startDate, additionalMonth){
var day = startDate.getDate();
var newDate = calculateDate(startDate, additionalMonth);
var correctDate = calculateLastDayMonth(newDate, day);
return formatDateToString(correctDate);
}

$(".returnedDate").text("START DATE: " + returnFormattedDate(date, additionalMonth));

for(var x = 0; x <= 5; x++){
$("body").append(returnFormattedDate(date, additionalMonth) + "<br>");
additionalMonth++;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<h5 class="returnedDate"></h5>

关于javascript - 如何返回正确的月份?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43046528/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com