Nice programing

현재 날짜에 1 일을 추가하려면 어떻게해야합니까?

nicepro 2020. 12. 13. 11:05
반응형

현재 날짜에 1 일을 추가하려면 어떻게해야합니까?


JavaScript Date 개체를 사용하여 하루 씩 증가해야하는 현재 Date 개체가 있습니다. 다음 코드가 있습니다.

var ds = stringFormat("{day} {date} {month} {year}", { 
                day: companyname.i18n.translate("day", language)[date.getUTCDay()], 
                date: date.getUTCDate(), 
                month: companyname.i18n.translate("month", language)[date.getUTCMonth()], 
                year: date.getUTCFullYear() 
});

하루를 추가하려면 어떻게해야합니까?

나는에 +1을 추가 한 getUTCDay()하고 getUTCDate()있지만위한 '일요일'이 표시되지 않습니다 day내가 일을 기대하고있다.


날짜 개체에 하루를 추가하려면 :

var date = new Date();

// add a day
date.setDate(date.getDate() + 1);

내 겸손한 의견으로는 가장 좋은 방법은 밀리 초 단위로 하루를 추가하는 것입니다. 코드를 인수하는 방법에 따라 매월 마지막 날에 엉망이 될 수 있습니다.

예 : 2 월 28 일 또는 3 월 31 일.

다음은 내가 어떻게 할 것인지에 대한 예입니다.

var current = new Date(); //'Mar 11 2015' current.getTime() = 1426060964567
var followingDay = new Date(current.getTime() + 86400000); // + 1 day in ms
followingDay.toLocaleDateString();

imo 이것은 정확성을 보장합니다

여기에 또 다른 예가 있습니다. 나는 당신을 위해 일할 수 있지만 위의 복용량만큼 깨끗하지는 않습니다.

var today = new Date('12/31/2015');
var tomorrow = new Date(today);
tomorrow.setDate(today.getDate()+1);
tomorrow.toLocaleDateString();

imho this === '똥'

그래서 여러분 중 일부는 일광 절약 시간 때문에 제 밀리 초 접근 방식에 대해 불만을 가지고 있습니다. 그래서 나는 이것을 부술 것입니다. 첫째, 일부 국가 및 주에서는 일광 절약 시간이 없습니다. 두 번째 정확히 24 시간을 더하는 것은 하루 종일입니다. 날짜 번호가 1 년에 한 번 변경되지 않고 6 개월 후에 수정되면 문제가 발생하지 않습니다. 그러나 명확하고 사악한 Date () 할당을 처리해야하기 위해 이것을 생각하고 이제는 Date를 철저히 싫어합니다. 그래서 이것이 나의 새로운 접근 방식입니다

var dd = new Date(); // or any date and time you care about 
var dateArray =  dd.toISOString().split('T')[0].split('-').concat( dd.toISOString().split('T')[1].split(':') );
// ["2016", "07", "04", "00", "17", "58.849Z"] at Z 

이제 재미있는 부분입니다!

var date = { 
    day: dateArray[2],
    month: dateArray[1],
    year: dateArray[0],
    hour: dateArray[3],
    minutes: dateArray[4],
    seconds:dateArray[5].split('.')[0],
    milliseconds: dateArray[5].split('.')[1].replace('Z','')
}

이제 Zulu 자오선에 명확하게 기록 된 공식 유효 국제 날짜 개체가 있습니다. 이제 날짜를 변경하려면

  dd.setDate(dd.getDate()+1); // this gives you one full calendar date forward
  tomorrow.setDate(dd.getTime() + 86400000);// this gives your 24 hours into the future. do what you want with it.

int days = 1;
var newDate = new Date(Date.now() + days*24*60*60*1000);

CodePen

var days = 2;
var newDate = new Date(Date.now()+days*24*60*60*1000);

document.write('Today: <em>');
document.write(new Date());
document.write('</em><br/> New: <strong>');
document.write(newDate);


이 질문 에서 jpmottin 에서 영감을 얻은 한 줄 코드는 다음과 같습니다.

var dateStr = '2019-01-01';
var days = 1;

var result = new Date(new Date(dateStr).setDate(new Date(dateStr).getDate() + days));

document.write('Date: ', result); // Wed Jan 02 2019 09:00:00 GMT+0900 (Japan Standard Time)
document.write('<br />');
document.write('Trimmed Date: ', result.toISOString().substr(0, 10)); // 2019-01-02

도움이 되었기를 바랍니다


현재 datetime에 하루 (24 시간)를 추가하려면 다음과 같이 밀리 초를 추가 할 수 있습니다.

new Date(Date.now() + ( 3600 * 1000 * 24))

참고 URL : https://stackoverflow.com/questions/9989382/how-can-i-add-1-day-to-current-date

반응형