> 웹 프론트엔드 > JS 튜토리얼 > JavaScript 날짜 개체에 30분을 추가하는 방법은 무엇입니까?

JavaScript 날짜 개체에 30분을 추가하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2025-01-04 10:50:40
원래의
965명이 탐색했습니다.

How to Add 30 Minutes to a JavaScript Date Object?

JavaScript Date 개체에 30분을 추가하는 방법

JavaScript Date 개체에 30분을 추가하려면 다음을 수행하세요. 다음 단계를 따르세요.

라이브러리 사용

다음 단계를 따르세요. 많은 날짜 작업을 수행하는 경우 Luxon, Day.js 또는 Moment.js와 같은 JavaScript 날짜 라이브러리를 살펴보는 것이 좋습니다. 예를 들어 Moment.js의 경우 다음과 같습니다.

var newDateObj = moment(oldDateObj).add(30, 'm').toDate();

Vanilla JavaScript

혼돈의 대답과 같지만 한 줄로 말하면:

var newDateObj = new Date(oldDateObj.getTime() diff*60000);
diff는 oldDateObj의 시간과 원하는 분 단위의 차이입니다. 음수일 수도 있습니다.

또는 재사용 가능한 함수로, 여러 위치에서 이 작업을 수행해야 하는 경우:

function addMinutes(date, Minutes) {

return new Date(date.getTime() + minutes*60000);
로그인 후 복사

}
이것이 명확하지 않은 경우를 대비하여 분에 60000을 곱하는 이유는 분을 밀리초.

바닐라 자바스크립트에 주의하세요. 날짜는 어렵습니다!

날짜에 24시간을 추가하면 내일 날짜를 얻을 수 있다고 생각할 수도 있겠죠? 틀렸습니다!

사용자가 일광 절약 시간을 준수하면 하루가 반드시 24시간은 아닌 것으로 나타났습니다. 1년에 23시간인 하루가 있고, 25시간인 하루가 있습니다. 예를 들어, 대부분의 미국과 캐나다에서는 2014년 11월 2일 자정으로부터 24시간이 지난 후에도 여전히 11월 2일입니다.

const NOV = 10; //JS 달이 1개월 차이가 나기 때문입니다...
addMinutes(new Date(2014, NOV, 2), 60*24); //미국에서는 11월 3일 오전 12시가 아닌 11월 2일 오후 11시를 인쇄합니다!
이러한 작업을 많이 해야 한다면 앞서 언급한 라이브러리 중 하나를 사용하는 것이 더 안전한 방법입니다.

아래는 제가 작성한 이 함수의 보다 일반적인 버전입니다. 나는 여전히 라이브러리를 사용하는 것을 권장하지만 이는 프로젝트에 과도하거나 불가능할 수 있습니다. 구문은 MySQL DATE_ADD 함수를 모델로 합니다.

/**

  • 날짜에 시간을 추가합니다. MySQL DATE_ADD 함수를 모델로 합니다.
  • 예: dateAdd(new Date(), '분', 30) //지금부터 30분을 반환합니다.
  • https://stackoverflow.com/a /1214753/18511
  • @param date 시작할 날짜
  • @param 간격 연도, 분기, 월, 주, 일, 시, 분, 초
  • 중 하나
  • @param 단위 추가할 주어진 간격의 단위 수 .
*/


function dateAdd(날짜, 간격, 단위) {
return undefined;
로그인 후 복사
if(!( 날짜 인스턴스(날짜))



var ret = new Date(date); //원래 날짜를 변경하지 마세요

var checkRollover = function() { if(ret.getDate() != date.getDate()) ret.setDate(0);};
case 'year'   :  ret.setFullYear(ret.getFullYear() + units); checkRollover();  break;
case 'quarter':  ret.setMonth(ret.getMonth() + 3*units); checkRollover();  break;
case 'month'  :  ret.setMonth(ret.getMonth() + units); checkRollover();  break;
case 'week'   :  ret.setDate(ret.getDate() + 7*units);  break;
case 'day'    :  ret.setDate(ret.getDate() + units);  break;
case 'hour'   :  ret.setTime(ret.getTime() + units*3600000);  break;
case 'minute' :  ret.setTime(ret.getTime() + units*60000);  break;
case 'second' :  ret.setTime(ret.getTime() + units*1000);  break;
default       :  ret = undefined;  break;
로그인 후 복사
switch(String(interval ).toLowerCase()) {



}
반환 ret;

}jsFiddle 데모 작업 중

위 내용은 JavaScript 날짜 개체에 30분을 추가하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿