내일 날짜를 dd-mm-yy 형식으로 얻는 방법 JavaScript


90

내일 날짜를 (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 개를 넘을 수 있습니다.

몇 시간 동안 검색했지만 이에 대한 답이나 해결책이없는 것 같습니까?

답변:


176

이것은 당신을 위해 정말 멋지게 고칠 것입니다.

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 중에 밝혀진 버그를 직접 만들었 기 때문입니다.


9
감사합니다. 조금 더 짧게var currentDate = new Date(+new Date() + 86400000);
Ikrom 2014 년

13
이 전략을 사용하면 DST와 관련된 문제가 발생할 수 있으며, 이로 인해 1 년 중 하루는 23 시간, 하루는 25 시간이됩니다. 아래 Phil의 대답은이 문제를 방지합니다.
gsf 2014

3
new Date().getTime()로 단순화 될 수있다Date.now()
체르니

둘 다 정확하지만 IE8에는 Date.now ()가 있다고 생각하지 않습니다.
Roderick Obrist 2015

2
@ConorB, .getMonth ()는 1 월의 경우 0, 2 월의 경우 1 ... 12 월의 경우 11을 반환합니다. 1을 더하면 배열 인덱스에서 사람이 읽을 수있는 날짜로 바뀝니다.
로데릭 오브리스트

135

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

오늘이 31 일처럼 한 달의 마지막 날인 경우에도 여전히 작동할까요? +1을 추가하면 32 위가되지 않나요?
Timo 2015

19
@Timo 확신 내 예를 보여줍니다 정확히

1
아, 네 말이 맞아요. 나는 2 월이 28 일밖에 없다는 것을 잊었다 :-)
Timo

new Date ( '2016-10-31')가 'Sun Oct 30 2016 23:00:00 GMT-0100 (AZOT)'을 반환하기 때문에 오늘은 실패했습니다. 나는 아 조레스 섬에있어 및 시간대는 AZOT에 AZOST로 변경되었습니다
nunoarruda

@nunoarruda 죄송합니다. 당신이 거기에서 무슨 말을하는지 또는이 답변과 무슨 관련이 있는지 잘 모르겠습니다
Phil

7

DateJS 라이브러리를 사용합니다. 정확히 그렇게 할 수 있습니다.

http://www.datejs.com/

다음을 수행하십시오.

var d = new Date.today().addDays(1).toString("dd-mm-yyyy");

Date.today() -오늘 자정에 제공합니다.


1
나는 Phil의 대답을 더 좋아합니다 ... 모든 날짜에 DateJS를 사용하지만 JS만으로도 할 수있는 것 같습니다!
MattW

4
Date.parse ( 'tomorrow'). toString ( 'dd-MM-yyyy');
geoffrey.mcgill 2012 년

5

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()}`;
}

4

아래는 한 자리 월 / 일을 설명하는 두 개의 추가 조건과 함께 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;
}

3

사용 사례 :

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)}

3

방법 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을 선호했습니다.이 질문 에는 이러한 방법과 다른 방법이 언급되어 있습니다.


2

정말 간단합니다.

1 : 오늘 날짜와 시간으로 날짜 개체를 만듭니다. 2 : 날짜 개체 메서드를 사용하여 일, 월 및 전체 연도를 검색하고 + 연산자를 사용하여 연결합니다.

http://www.thesstech.com/javascript/date-time 방문 날짜와 시간에 대한 자세한 튜토리얼 자바 스크립트를.

샘플 코드 :

  var my_date = new Date();  
  var tomorrow_date =       (my_date .getDate()+1)  + "-" + (my_date .getMonth()+1) + "-" + my_date .getFullYear();
  document.write(tomorrow_date);

OP가 이미 관찰했듯이 이것은 날짜로 이월되지 않습니다.
Wolfgang Kuehn

0
function getMonday(d)
{
   // var day = d.getDay();
   var day = @Config.WeekStartOn
   diff = d.getDate() - day + (day == 0 ? -6 : 0);
   return new Date(d.setDate(diff));
}

0

원래 답변과 동일하지만 한 줄로 표시됩니다.

var tomorrow = new Date(Date.now() + 24 * 60 * 60 * 1000)

숫자는 24 시간 60 분 60 초 1000 밀리 초입니다.


1
DST가 고려되지 않았기 때문에이 대답은 정확하지 않습니다.
실망

0

당신은 이것을 시도 할 수 있습니다 :

function Tomorrow(date=false) {
    var givendate = (date!=false) ? new Date(date) : new Date();
    givendate.setDate(givendate.getDate() + 1);
    var day = givendate.getUTCDate()
    var month = givendate.getUTCMonth()+1
    var year = givendate.getUTCFullYear()
    result ="<b>" + day + "/" + month + "/" + year + "</b>";
    return result;
} 
var day = Tomorrow('2020-06-30');
console.log('tomorrows1: '+Tomorrow('2020-06-30'));
console.log('tomorrows2: '+Tomorrow());


0
        Date.prototype.NextDay = function (e) {
        return new Date(this.getFullYear(), this.getMonth(), this.getDate() + ("string" == typeof e ? parseInt(e, 10) : e));
    }

    // tomorrow
    console.log(new Date().NextDay(1))

    // day after tomorrow
    console.log(new Date().NextDay(2))

0

JS 만 사용 (Pure js)

오늘

new Date()
//Tue Oct 06 2020 12:34:29 GMT+0530 (India Standard Time)
new Date(new Date().setHours(0, 0, 0, 0))
//Tue Oct 06 2020 00:00:00 GMT+0530 (India Standard Time)
new Date(new Date().setHours(0, 0, 0,0)).toLocaleDateString('fr-CA')
//"2020-10-06"

내일

new Date(+new Date() + 86400000);
//Wed Oct 07 2020 12:44:02 GMT+0530 (India Standard Time)
new Date(+new Date().setHours(0, 0, 0, 0) + 86400000);
//Wed Oct 07 2020 00:00:00 GMT+0530 (India Standard Time)
new Date(+new Date().setHours(0, 0, 0,0)+ 86400000).toLocaleDateString('fr-CA')
//"2020-10-07"
//don't forget the '+' before new Date()

모레

2를 곱하면됩니다. 예 :-2 * 86400000

https://stackoverflow.com/a/3191729/7877099 에서 모든 로케일 단축 코드를 찾을 수 있습니다.


-1
        //-----------Date Configuration march 18,2014----------------------

        //alert(DateFilter);

        var date = new Date();
        y = date.getFullYear(), m = date.getMonth();
        var EndDate = new Date();



        switch (DateFilter) {
            case 'today': var StartDate = EndDate;   //todays date                 
                break;
            case 'yesterday':
                var d = new Date();
                var previousDate = new Date(d.getTime() - 1000 * 60 * 60 * 24);
                var StartDate = new Date(previousDate.yyyymmdd()); //yesterday Date
                break;
            case 'tomorrow':
                var d = new Date();
                var NextDate = new Date(d.getTime() + 1000 * 60 * 60 * 24);
                var StartDate = new Date(NextDate.yyyymmdd()); //tomorrow Date
                break;
            case 'thisweek': var StartDate = getMonday(new Date()); //1st date of this week
                break;
            case 'thismonth': var StartDate = new Date(y, m, 1);  //1st date of this month
                break;
            case 'thisyear': var StartDate = new Date("01/01/" + date.getFullYear());  //1st date of this year
                break;
            case 'custom': //var StartDate = $("#txtFromDate").val();                   
                break;
            default:
                var d = new Date();
                var StartDate = new Date(d.getTime() - 30 * 24 * 60 * 60 * 1000); //one month ago date from now.
        }


        if (DateFilter != "custom") {
            var SDate = $.datepicker.formatDate('@Config.DateFormat', StartDate); $("#txtFromDate").val(SDate);
            var EDate = $.datepicker.formatDate('@Config.DateFormat', EndDate); $("#txtToDate").val(EDate);
        }
        //-----------Date Configuration march 18,2014----------------------

답변에 설명을 추가해보십시오.
Amar 2014 년

-1
var curDate = new Date().toLocaleString().split(',')[0];

간단히! dd.mm.yyyy 형식입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.