내일 날짜를 (dd-mm-yyyy) 형식으로 표시하도록 JavaScript를 얻으려고합니다.
오늘 날짜를 (dd-mm-yyyy) 형식으로 표시하는이 스크립트가 있습니다.
var currentDate = new Date()
var day = currentDate.getDate()
var month = currentDate.getMonth() + 1
var year = currentDate.getFullYear()
document.write("<b>" + day + "/" + month + "/" + year + "</b>")
Displays: 25/2/2012 (todays date of this post)
그러나 동일한 형식으로 내일 날짜를 표시하려면 어떻게해야합니까? 26/2/2012
나는 이것을 시도했다 :
var day = currentDate.getDate() + 1
하지만 +1
한 달에 32 일 이상을 유지 하지 않고 31 개를 넘을 수 있습니다.
몇 시간 동안 검색했지만 이에 대한 답이나 해결책이없는 것 같습니까?
답변
이것은 당신을 위해 정말 멋지게 고칠 것입니다.
Date 생성자를 시간을 전달하면 나머지 작업을 수행합니다.
24 시간 60 분 60 초 1000 밀리 초
var currentDate = new Date(new Date().getTime() + 24 * 60 * 60 * 1000);
var day = currentDate.getDate()
var month = currentDate.getMonth() + 1
var year = currentDate.getFullYear()
document.write("<b>" + day + "/" + month + "/" + year + "</b>")
한 가지 명심해야 할 점은이 메서드는 지금부터 정확히 24 시간 후에 날짜를 반환한다는 것입니다. 이는 일광 절약 시간에 대해서는 정확하지 않을 수 있습니다.
Phil의 답변 작업은 언제든지 :
var currentDate = new Date();
currentDate.setDate(currentDate.getDate() + 1);
제가 게시물을 편집 한 이유는 제가 예전 방법을 사용하여 DST 중에 밝혀진 버그를 직접 만들었 기 때문입니다.
답변
JavaScript Date
클래스가이를 처리합니다.
var d = new Date("2012-02-29")
console.log(d)
// Wed Feb 29 2012 11:00:00 GMT+1100 (EST)
d.setDate(d.getDate() + 1)
console.log(d)
// Thu Mar 01 2012 11:00:00 GMT+1100 (EST)
console.log(d.getDate())
// 1
답변
DateJS 라이브러리를 사용합니다. 정확히 그렇게 할 수 있습니다.
다음을 수행하십시오.
var d = new Date.today().addDays(1).toString("dd-mm-yyyy");
Date.today()
-오늘 자정에 제공합니다.
답변
Date.prototype.setDate () 메서드 는 표준 범위를 벗어난 인수도 허용하고 그에 따라 날짜를 변경합니다.
function getTomorrow() {
const tomorrow = new Date();
tomorrow.setDate(tomorrow.getDate() + 1); // even 32 is acceptable
return `${tomorrow.getFullYear()}/${tomorrow.getMonth() + 1}/${tomorrow.getDate()}`;
}
답변
아래는 한 자리 월 / 일을 설명하는 두 개의 추가 조건과 함께 Roderick과 Phil의 답변 조합을 사용합니다.
내가 작업 한 많은 API는 이에 대해 까다 롭고 날짜 클래스가 일부 상황에서 제공 할 6 자리 또는 7 자리 숫자 대신 8 자리 숫자 (예 : ‘02022017’)를 요구합니다.
function nextDayDate() {
// get today's date then add one
var nextDay = new Date();
nextDay.setDate(nextDay.getDate() + 1);
var month = nextDay.getMonth() + 1;
var day = nextDay.getDate();
var year = nextDay.getFullYear();
if (month < 10) { month = "0" + month }
if (day < 10) { day = "0" + day }
return month + day + year;
}
답변
사용 사례 :
Date.tomorrow() // 1 day next
Date.daysNext(1) // alternative Date.tomorrow()
Date.daysNext(2) // 2 days next.
“내일”이 오늘이 아니라 다른 날짜와 다른 경우 Date.now()
경우 정적 메서드를 사용하지 말고 비정 적을 사용해야합니다.
예 : 2008 년 12 월 5 일 금요일
var dec5_2008=new Date(Date.parse('2008/12/05'));
dec5_2008.tomorrow(); // 2008/12/06
dec5_2008.tomorrow().day // 6
dec5_2008.tomorrow().month // 12
dec5_2008.tomorrow().year //2008
dec5_2008.daysNext(1); // the same as previous
dec5_2008.daysNext(7) // next week :)
API :
Dateold=Date;function Date(e){var t=null;if(e){t=new Dateold(e)}else{t=new Dateold}t.day=t.getDate();t.month=t.getMonth()+1;t.year=t.getFullYear();return t}Date.prototype.daysNext=function(e){if(!e){e=0}return new Date(this.getTime()+24*60*60*1e3*e)};Date.prototype.daysAgo=function(e){if(!e){e=0}return Date.daysNext(-1*e)};Date.prototype.tomorrow=function(){return this.daysNext(1)};Date.prototype.yesterday=function(){return this.daysAgo(1)};Date.tomorrow=function(){return Date.daysNext(1)};Date.yesterday=function(){return Date.daysAgo(1)};Date.daysNext=function(e){if(!e){e=0}return new Date((new Date).getTime()+24*60*60*1e3*e)};Date.daysAgo=function(e){if(!e){e=0}return Date.daysNext(-1*e)}
답변
방법 1 : 다른 라이브러리를 사용하는 데 문제가 없다면 moment.js 를 사용하면이 방법을 사용할 수 있습니다.
moment().add('days', 1).format('L');
방법 2 : Date.js 사용,
<script type="text/javascript" src="date.js"></script>
var tomorrow = new Date.today().addDays(1).toString("dd-mm-yyyy");
이 메서드는 기본 날짜 라이브러리가 아닌 외부 라이브러리를 사용합니다. 내 bootstrap-datetimepicker가 moment.js 및 기본 날짜 라이브러리를 사용했기 때문에 방법 1을 선호했습니다.이 질문 에는 이러한 방법과 다른 방법이 언급되어 있습니다.