자바스크립트의 Date 객체를 사용하여
현재 날짜를 구할 수 있고, 특정 날짜를 구할 수 있습니다.
Date()
Date 객체는 생성자 함수이며, 날짜와 시간을 가지는 인스턴스를 생성합니다.
생성된 인스턴스는 기본적으로 현재 날짜와 시간을 나타내는 값을 가집니다.
현재 날짜와 시간이 아닌 특정 날짜와 시간을 다루고 싶은 경우,
Date 생성자 함수에 명시적으로 특정 날짜와 시간 정보를 매개변수로 지정합니다.
Date() 사용 방법
1. 현재 시간
new Date(); 를 이용하여 Date 객체를 생성합니다.
var date1 = new Date(); // 현재 날짜 및 시간, Fri Jan 06 2023 16:24:15 GMT+0900 (한국 표준시)
2. 특정 시간
new Date(매개변수); 의 형태로, 생성한 Date 객체에 특정 시간에 대한 값을 매개변수로 전달합니다.
var date1 = new Date(2023,00,06,16,20); // Fri Jan 06 2023 16:20:00 GMT+0900 (한국 표준시)
var date1_2 = new Date(2023,01,06,16,20); // Mon Feb 06 2023 16:20:00 GMT+0900 (한국 표준시)
var date2 = new Date('2023-0-6'); // Fri Jan 06 2023 00:00:00 GMT+0900 (한국 표준시)
var date3 = new Date('2023-00-06 16:20:30'); // Fri Jan 06 2023 16:20:30 GMT+0900 (한국 표준시)
var date1 같은 경우를 보면, 2023년 다음 월 입력 부분이 00으로 되어있지만 결과는 1월로 출력이 됩니다.
var date1_1은 월 부분이 01로 입력이 되어있지만, 2월을 나타내는 Feb로 출력됩니다.
var date1 = new Date(2023,01,06,16,20,30);
var date2 = new Date('2023-01-06 16:20:30');
console.log('date1 => ', date1); //date1 => Mon Feb 06 2023 16:20:30 GMT+0900 (한국 표준시)
console.log('date2 => ', date2); //date2 => Fri Jan 06 2023 16:20:30 GMT+0900 (한국 표준시)
이는 매개변수가 문자열이 아닌 경우 자바스크립트에서 월(month)을 나타낼 때는 1월이 0으로 표현되고, 12월이 11로 표현되기 때문입니다. (첫 번째 순서가 0부터 시작하기 때문)
3. 다양한 매개변수
뿐만 아니라 아래 코드와 같이 다양한 형식의 매개변수를 통해 특정 시간을 구할 수 있습니다.
'Jan 06, 2023 16:20:00'이나 '2023/01/06/16:20:00'와 같이 다양한 날짜와 시간에 관한 형식을 전달할 수 있습니다.
var date2 = new Date('Jan 06, 2023 16:20:00');
console.log(date); // Fri Jan 06 2023 16:20:00 GMT+0900 (한국 표준시)
var date2 = new Date('2023/01/06/16:20:00');
console.log(date2); // Fri Jan 06 2023 16:20:00 GMT+0900 (한국 표준시)
4. 필수적인 매개변수
매개변수를 이용하여 특정 날짜를 구한다면, 년도와 월은 필수로 입력해야 합니다.
지정하지 않은 일, 시, 분, 초, 밀리초는 0 또는 1로 초기화됩니다.
var date = new Date(2023, 0);
console.log(date); // Sun Jan 01 2023 00:00:00 GMT+0900 (한국 표준시)
매개변수 | 내용 |
year | 1900년 이후의 년 |
month | 월을 나타내는 0 ~ 11까지의 정수 (주의: 0부터 시작, 0 = 1월) |
day | 일을 나타내는 1 ~ 31까지의 정수 |
hour | 시를 나타내는 0 ~ 23까지의 정수 |
minute | 분을 나타내는 0 ~ 59까지의 정수 |
second | 초를 나타내는 0 ~ 59까지의 정수 |
millisecond | 밀리초를 나타내는 0 ~ 999까지의 정수 |
Date() 내장 함수
Date객체가 내부적으로 가지고 있는 함수들이 있습니다.
Date.now
1970년 1월 1일 00:00:00(UTC)을 기점으로 현재 시간까지 경과한 밀리초를 숫자로 반환합니다.
Date.parse
var d = Date.parse('Jan 2, 1970 09:00:00');
console.log(d); // 86400000
1970년 1월 1일 00:00:00(UTC)을 기점으로 매개변수로 전달된 지정 시간까지의 밀리초를 숫자로 반환합니다.
매개변수는 new Date(dateString)의 매개변수와 동일한 형식으로 사용해야 합니다.
Date.UTC
var a = Date.UTC(1970, 0, 2);
console.log(a); // 86400000
var b = Date.UTC('1970/1/2');
console.log(n); // NaN
1970년 1월 1일 00:00:00(UTC)을 기점으로 매개변수로 전달된 지정 시간까지의 밀리초를 숫자로 반환합니다.
Date.UTC 메소드는 new Date(year, month[, day, hour, minute, second, millisecond])와 같은 형식의 매개변수를 사용해야 하며, Date.UTC 메소드의 매개변수는 local time(KST)가 아닌 UTC로 인식됩니다.
Date.prototype.getFullYear / Date.prototype.setFullYear
년도를 나타내는 4자리 숫자를 반환/설정할 수있습니다.
년도 이외에 월, 일도 설정도 가능합니다.
var today = new Date();
// 년도 지정
today.setFullYear(2023);
console.log(today); // Fri Jan 06 2023 17:02:17 GMT+0900 (한국 표준시)
console.log(today.getFullYear()); // 2023
// 년도 월 일 지정
today.setFullYear(1900, 0, 1);
console.log(today); // Mon Jan 01 1900 17:02:57 GMT+0827 (한국 표준시)
console.log(today.getFullYear()); // 1900
Date.prototype.getMonth / Date.prototype.setMonth
월을 나타내는 0 ~ 11의 정수를 반환/설정합니다.
이 또한 1월은 0, 12월은 11이며 월 이외에도 일자도 설정이 가능합니다.
var today = new Date();
// 월을 지정
today.setMonth(0); // 1월
console.log(today); // Fri Jan 06 2023 17:05:51 GMT+0900 (한국 표준시)
console.log(today.getMonth()); // 0
// 월/일을 지정
today.setMonth(4, 5); // 5월 5일
console.log(today); // Fri May 05 2023 17:06:47 GMT+0900 (한국 표준시)
console.log(today.getMonth()); // 4
Date.prototype.getDate / Date.prototype.setDate
날짜(1 ~ 31)를 나타내는 정수를 반환/설정합니다.
var today = new Date();
// 날짜 지정
today.setDate(3);
console.log(today); // Tue Jan 03 2023 17:08:30 GMT+0900 (한국 표준시)
console.log(today.getDate()); // 3
Date.prototype.getDay
date를 지정하면 자동으로 요일이 결정되기 때문에 setDay는 없습니다.
요일(0 ~ 6)를 나타내는 정수를 반환하며, 반환값은 아래와 같습니다.
요일 | 반환값 |
일 | 0 |
월 | 1 |
화 | 2 |
수 | 3 |
목 | 4 |
금 | 5 |
토 | 6 |
cf. 요일을 구하는 함수
Date.prototype.getHours / Date.prototype.setHours
시간(0 ~ 23)를 나타내는 정수를 반환/설정할 수 있습니다. 시간 이외 분, 초, 밀리초 또한 설정이 가능합니다.
var today = new Date();
// 시간 지정
today.setHours(7);
console.log(today); // Fri Jan 06 2023 07:11:47 GMT+0900 (한국 표준시)
console.log(today.getHours()); // 7
// 시간/분/초/밀리초 지정
today.setHours(0, 0, 0, 0); // 00:00:00:00
console.log(today); // Fri Jan 06 2023 00:00:00 GMT+0900 (한국 표준시)
console.log(today.getHours()); // 0
Date.prototype.getMinutes / Date.prototype.setMinutes
분(0 ~ 59)를 나타내는 정수를 반환/설정할 수 있습니다. 분 이외 초, 밀리초 또한 설정할 수 있습니다.
var today = new Date();
// 분 지정
today.setMinutes(50);
console.log(today); // Fri Jan 06 2023 17:50:02 GMT+0900 (한국 표준시)
console.log(today.getMinutes()); // 50
// 분/초/밀리초 지정
today.setMinutes(5, 10, 999); // HH:05:10:999
console.log(today); // Fri Jan 06 2023 17:05:10 GMT+0900 (한국 표준시)
console.log(today.getMinutes()); // 5
Date.prototype.getSeconds / Date.prototype.setSeconds
초(0 ~ 59)를 나타내는 정수를 반환/설정할 수 있습니다. 초 이외 밀리초도 설정할 수 있습니다.
var today = new Date();
// 초 지정
today.setSeconds(30);
console.log(today); // Fri Jan 06 2023 17:14:30 GMT+0900 (한국 표준시)
console.log(today.getSeconds()); // 30
// 초/밀리초 지정
today.setSeconds(10, 0); // HH:MM:10:000
console.log(today); // Fri Jan 06 2023 17:14:10 GMT+0900 (한국 표준시)
console.log(today.getSeconds()); // 10
Date.prototype.getMilliseconds / Date.prototype.setMilliseconds
밀리초(0 ~ 999)를 나타내는 정수를 반환/설정할수있습니다.
var today = new Date();
// 밀리초 지정
today.setMilliseconds(123);
console.log(today); // Fri Jan 06 2023 17:15:10 GMT+0900 (한국 표준시)
console.log(today.getMilliseconds()); // 123
Date.prototype.getTime / Date.prototype.setTime
1970년 1월 1일 00:00:00(UTC)을 기점으로 현재 시간까지 경과된 밀리초를 반환/설정할 수 있습니다.
var today = new Date(); // Fri Jan 01 1970 09:00:00 GMT+0900 (한국 표준시)
// 1970년 1월 1일 00:00:00(UTC)를 기점으로 현재 시간까지 경과된 밀리초 지정
today.setTime(86400000); // 86400000 === 1day
console.log(today); // Fri Jan 02 1970 09:00:00 GMT+0900 (한국 표준시)
console.log(today.getTime()); // 86400000
Date.prototype.getTimezoneOffset
UTC와 지정 로케일(Locale) 시간과의 차이를 분단위로 반환합니다.
var today = new Date();
var x = today.getTimezoneOffset() / 60; // 분단위값을 60으로 나눈다
console.log(today); // Fri Jan 06 2023 17:17:31 GMT+0900 (한국 표준시)
console.log(x); // -9
Date.prototype.toDateString
사람이 읽을 수 있는 형식의 문자열로 날짜를 반환합니다.
var d = new Date('2023/1/06/17:19');
console.log(d.toString()); // Fri Jan 06 2023 17:19:00 GMT+0900 (한국 표준시)
console.log(d.toDateString()); // Fri Jan 06 2023
Date.prototype.toTimeString
사람이 읽을 수 있는 형식의 문자열로 시간을 반환합니다.
var d = new Date('2023/1/06/17:20');
console.log(d.toString()); // Fri Jan 06 2023 17:20:00 GMT+0900 (한국 표준시)
console.log(d.toTimeString()); // 17:20:00 GMT+0900 (한국 표준시)
'DEV > JavaScript & JQuery' 카테고리의 다른 글
[JQuery] 체크 박스 전체 개수와 선택된 개수 / 체크 처리와 체크 해제 (2) | 2023.01.27 |
---|---|
[JavaScript] 배열의 특정 값 삭제하기 (2) | 2023.01.19 |
[JQuery] 상위요소, 부모 요소 찾는 방법(parent, parents, closest) (2) | 2022.12.29 |
[JavaScript] 버튼에 강제 클릭 발생 시키기 - click() (0) | 2022.12.29 |
[JQuery] 사용자 데이터, 커스텀 데이터(custom data - data-xx의 형태) (0) | 2022.12.23 |
댓글