지금 날짜로부터 1 년을 얻으려고하는데 작동하지 않습니다.
JS :
var now = new Date();
var oneYr = new Date();
oneYr.setYear(now.getYear() + 1);
$("#yearFromNow").append(oneYr.toString());
var oneMonth = new Date();
oneMonth.setMonth(now.getMonth() + 1);
$("#monthFromNow").append(oneMonth.toString());
산출:
one mo. = Thu Dec 22 112 15:16:01 GMT-0500 (Eastern Standard Time)
one yr. = Sun Jan 22 2012 15:16:01 GMT-0500 (Eastern Standard Time)
올해는 Dec 22 112
-?? 월이 올바르게 표시 Jan 22 2012
됩니다.
수정하고 싶다면 http://jsbin.com/alezaj/edit#javascript,html,live . 이것은 Chrome 및 Firefox에 있습니다.
감사!
답변
getFullYear()
대신을 사용해야 합니다 getYear()
. getYear()
실제 연도에서 1900을 뺀 값을 반환합니다 (따라서 상당히 쓸모가 없습니다).
따라서 현재 시점으로부터 정확히 1 년을 표시하는 날짜는 다음과 같습니다.
var oneYearFromNow = new Date();
oneYearFromNow.setFullYear(oneYearFromNow.getFullYear() + 1);
2 월 29 일에 변경하면 날짜가 조정됩니다.
마찬가지로 getMonth()
및을 통해 지금부터 한 달이 지난 날짜를 가져올 수 있습니다 setMonth()
. 12 월에한다면 올해에서 내년으로 “이월”하는 것에 대해 걱정할 필요가 없습니다. 날짜가 자동으로 조정됩니다. getDate()
및을 통해 월일에도 동일하게 적용됩니다 setDate()
.
답변
이것은 Date
단 한 줄로 정확히 1 년을 만들 것입니다. 먼저 우리는 얻을 fullYear
A로부터 new Date
그 a의 년으로, 세트 그것을 증가, new Date
. 우리가 거기에서 끝났다고 생각할 수도 있지만, 중지하면 Date
객체가 아닌 타임 스탬프를 반환 하므로 모든 것을 Date
생성자 에 래핑합니다 .
new Date(new Date().setFullYear(new Date().getFullYear() + 1))
답변
으로 setYear()
사용되지 않으며, 올바른 변형은 다음과 같습니다
// plus 1 year
new Date().setFullYear(new Date().getFullYear() + 1)
// plus 1 month
new Date().setMonth(new Date().getMonth() + 1)
// plus 1 day
new Date().setDate(new Date().getDate() + 1)
모든 예제는 Date
객체 를 얻고 싶다면 Unix 타임 스탬프를 반환합니다.new Date(...)
답변
이 페이지와 여기 의 답변 중 일부를 사용하여이 답변 중 어느 것도 나를 위해 완전히 해결되지 않았기 때문에 내 답변을 생각해 냈습니다.
여기에 핵심이 있습니다.
var startDate = "27 Apr 2017";
var numOfYears = 1;
var expireDate = new Date(startDate);
expireDate.setFullYear(expireDate.getFullYear() + numOfYears);
expireDate.setDate(expireDate.getDate() -1);
그리고 여기에 작동 예제가있는 JSFiddle이 있습니다 : https://jsfiddle.net/wavesailor/g9a6qqq5/
답변
이것을 사용하십시오 :
var startDate = new Date();
startDate.setFullYear(startDate.getFullYear() - 1);
답변
다른 사람들이 게시 한대로 setFullyear를 사용하지만 이것은 날짜 개체가 아닌 타임 스탬프 값을 반환합니다. 프로토 타입을 통해 기능을 추가하는 것도 좋은 후보 imho입니다. 이것은 다음과 같은 패턴으로 이어집니다.
Date.prototype.addYears = function(n) {
var now = new Date();
return new Date(now.setFullYear(now.getFullYear() + n));
};
console.log('Year from now is', new Date().addYears(1));
답변
아주 간단한 방법으로. 이 코드를 사용하십시오.
// define function
function nextYearDate(date1) {
var date2 = new Date(date1);
var date3 = date2.setDate(date2.getDate() - 1);
var date = new Date(date3);
var day = date.getDate();
var month = date.getMonth()+1;
var year = date.getFullYear()+1;
var newdate = year + '-' + (month < 10 ? '0' : '') + month + '-' + (day < 10 ? '0' : '') + day;
$("#next_date").val(newdate);
}
// call function.
<input type="date" name="current_date" id="current_date" value="" onblur="nextYearDate(this.value);" />
<input type="date" name="next_date" id="next_date" value="" onblur="nextYearDate(this.value);" />