[javascript] JavaScript 날짜에 일 추가

DateJavaScript를 사용하여 현재 날짜를 추가하는 방법 JavaScript에는 .Net과 같은 내장 함수가 AddDay있습니까?



답변

당신은 하나를 만들 수 있습니다 :-

Date.prototype.addDays = function(days) {
    var date = new Date(this.valueOf());
    date.setDate(date.getDate() + days);
    return date;
}

var date = new Date();

alert(date.addDays(5));

필요한 경우 월을 자동으로 증가시킵니다. 예를 들면 다음과 같습니다.

8/31 + 1 일은 9/1이 됩니다.

setDate직접 사용하는 문제 는 그것이 뮤 테이터이고 그런 종류의 것을 피하는 것이 가장 좋습니다. ECMA는 Date불변 구조가 아닌 가변 클래스 로 취급하기에 적합했습니다 .


답변

정답 :

function addDays(date, days) {
  var result = new Date(date);
  result.setDate(result.getDate() + days);
  return result;
}

잘못된 답변 :

이 답변은 때때로 올바른 결과를 제공하지만 종종 잘못된 연도 및 월을 반환합니다. 이 답변이 작동하는 유일한 시간은 요일을 추가하는 날짜가 현재 연도 및 월을 갖는 경우입니다.

// Don't do it this way!
function addDaysWRONG(date, days) {
  var result = new Date();
  result.setDate(date.getDate() + days);
  return result;
}

증명 / 예

이 JsFiddle을 확인하십시오

코드 스 니펫 표시


답변

var today = new Date();
var tomorrow = new Date();
tomorrow.setDate(today.getDate()+1);

까다로울 수 있으므로주의하십시오. “내일”을 설정하면 현재 값이 “오늘”의 연도 및 월과 일치하므로 작동합니다. 그러나 “32”와 같은 날짜 번호로 설정하면 일반적으로 다음 달로 이동해도 여전히 잘 작동합니다.


답변

내 간단한 해결책은 다음과 같습니다.

nextday=new Date(oldDate.getFullYear(),oldDate.getMonth(),oldDate.getDate()+1);

이 솔루션은 일광 절약 시간제에 문제가 없습니다. 또한 년, 월, 일 등에 대한 오프셋을 추가하거나 대체 할 수 있습니다.

day=new Date(oldDate.getFullYear()-2,oldDate.getMonth()+22,oldDate.getDate()+61);

올바른 코드입니다.


답변

이 답변은 나에게 혼란스러워 보입니다.

var ms = new Date().getTime() + 86400000;
var tomorrow = new Date(ms);

getTime ()은 1970 년 이후 밀리 초를 제공하며 86400000은 하루의 밀리 초 수입니다. 따라서 ms에는 원하는 날짜의 밀리 초가 포함됩니다.

밀리 초 생성자를 사용하면 원하는 날짜 개체가 제공됩니다.


답변

시험

var someDate = new Date();
var duration = 2; //In Days
someDate.setTime(someDate.getTime() +  (duration * 24 * 60 * 60 * 1000));

setDate ()를 사용하여 날짜를 추가해도 문제가 해결되지 않으면 2 월에 몇 일을 추가해보십시오. 새 날짜를 추가하려고하면 예상 한 결과를 얻지 못합니다.


답변

아래의 주요 예를 따를 때 추가하지 않은 한 해의 거래가 무엇인지 해결하려고 노력하면서 몇 년을 보냈습니다.

당신이 단순히 당신이 가지고있는 날짜에 단순히 n 일을 추가하려면 다음과 같이하는 것이 가장 좋습니다 :

myDate.setDate (myDate.getDate () + n);

또는 긴 버전

var theDate = new Date(2013, 11, 15);
var myNewDate = new Date(theDate);
myNewDate.setDate(myNewDate.getDate() + 30);
console.log(myNewDate);

오늘 / 내일은 혼란 스럽습니다. 현재 날짜를 새 날짜 변수로 설정하면 연도 값이 엉망이됩니다. 원래 날짜부터 일하면 그렇지 않습니다.