자바스크립트는 거의 모든 것이 객체로 이루어져 있는데 그중 날짜 기능을 가진 내장 객체 Date를 알아보겠습니다! Show Date 객체 생성 [ 현재 시간 ]
위처럼 코드를 작성할 시, 아래 출력처럼 나오게 되는데, 이때 첫 번째 줄은 today에 이 객체를 생성한 순간이 저장되게 됩니다. 하지만 현재 저는 18시:54분에 코드를 작성했지만 출력에는 09:54분으로 나오는데 이것은 Date는 UTC를 기준으로 객체를 생성해주기 때문에 한국시간보다 9시간이 느린 것입니다. 이것을 보완해주기 위해 현재 컴퓨터에 지정된 표준시간대에 따라 시간을 출력해주는 toLocaleDateString() 을 사용하면 됩니다.
현재시간이 아닌 원하는 시간대 설정Date 를 통해 현재 시간을 바로 가져올 수 있지만 현재 시간이 아닌 다른 시간을 설정해주고 싶을 때는 3가지 방법이 있습니다. 1. let 변수 이름 = new Date("YYYY-MM-DD") 로 년 월 일 설정해주기 2. let 변수 이름 = new Date("YYYY-MM-DDThh-mm-ss")로 년 월 일 시 분 초 설정해주기 3. let 변수 이름 = new Date(year, month, day, hour, minute, second) 순으로 인자를 넘겨 생성하기입니다.
위 코드의 출력을 보면 첫 번째 방법인 년 월 일 설정은 시간을 설정해주지 않았지만 오전 9시로 설정되어있는 것을 볼 수 있는데 이것은 원래 Date로 설정할 시 UTC 기준 00시 00분 00초로 설정되지만 한국 시간으로 전환되면서 오전 9시가 기본시간으로 전환된 것입니다. 또한 3번째 방법인 9번째 줄을 보면 출력은 3월이지만 인자는 2를 넘겨줬는데 이건 Date에서 0을 1월로 보기 때문에 원하는 월보다 1 낮게 설정해주어야 한다. Date 객체끼리의 차이 계산
위 코드처럼 Date 객체끼리의 계산을 통해 서로 간의 시간이 얼마나 차이 나는지에 대한 계산 또한 할 수 있다. Date 객체로 요일 알아내기Date 객체에 getDay() 메서드를 통해 요일이 어떤 요일인지를 0~6의 숫자로 반환해줍니다. 이때 주의해야 할 점은 0 (일요일) ~ 6 (토요일)로 반환해주는 것입니다. 이걸 저번에 학습한 switch로 요일을 반환하게 만들어 줄 수 있습니다.
위처럼 Date는 여러 가지 메서드를 지원해주고 있으며 설명하지 않은 메소드 들도 많으니 아래 첨부해놓은 공식 문서에서 필요한 메소드를 찾아 사용할 수 있습니다! https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Date Date - JavaScript | MDN JavaScript Date 객체는 시간의 한 점을 플랫폼에 종속되지 않는 형태로 나타냅니다. Date 객체는 1970년 1월 1일 UTC(협정 세계시) 자정과의 시간 차이를 밀리초로 나타내는 정수 값을 담습니다. developer.mozilla.org JavaScript 참고: TC39에서 새로운 날짜/시간 API인 Temporal을 작업 중입니다. Igalia
블로그에서 더 알아보세요. 아직 프로덕션에는 적합하지 않습니다! JavaScript 날짜의 기반은 1970년 1월 1일 UTC 자정과의 시간 차이를 밀리초 단위로 나타낸 것으로, 날짜와 시간의 컴퓨터 기록물을 대부분 차지하고 있는 UNIX 시간(UNIX epoch, 1970년 1월 1일 자정과의 시간 차이를 초 단위로 나타냄)과는 다릅니다. 참고: 날짜를 얻거나 시간대끼리 변환하는 메서드가 다수 존재하며, 그 중 특히 유용한 함수는 날짜 및 시간을 국제 표준 시간인 협정 세계시(UTC)로 반환하는 함수입니다. (UTC는 그리니치 시간대라고도 불리는데, 기준 시간대가 영국의 런던 인근인 그리니치를 지나는 경선이기 때문입니다.)
사용자의 장치는 현지 시간을 제공합니다. 함수로 호출할 경우 생성자로 호출할 경우 새로운 1970년 1월 1일 00:00:00 UTC로부터 지난 시간을 밀리초 단위의 숫자 값으로 반환합니다. 윤초는 무시합니다. 날짜를 나타내는 문자열을 분석한 후, 해당 날짜와 1970년 1월 1일 00:00:00 UTC의 시간 차이를 밀리초 단위의 숫자 값으로 반환합니다. 참고: 가지고 있으므로 사용하지 않는 것이 좋습니다. 생성자가 받을 수 있는
제일 많은 매개변수(구성요소 각각, 2개 ~ 7개)를 동일하게 받아서, 1970년 1월 1일 00:00:00 UTC의 시간 차이를 밀리초 단위의 숫자 값으로 반환합니다. 윤초는 무시합니다. Date.prototype.getFullYear()
Date.prototype.getHours()
Date.prototype.getMilliseconds()
Date.prototype.getMinutes()
Date.prototype.getMonth()
Date.prototype.getSeconds()
Date.prototype.getTime() 1970년 1월 1일 00:00:00 UTC로부터의 경과시간을 밀리초 단위로 반환합니다. Date.prototype.getTimezoneOffset() 현지 시간대와 UTC의 차이를 분 단위로 반환합니다. Date.prototype.getUTCDate()
Date.prototype.getUTCDay()
Date.prototype.getUTCFullYear()
Date.prototype.getUTCHours()
Date.prototype.getUTCMilliseconds()
Date.prototype.getUTCMinutes()
Date.prototype.getUTCMonth()
Date.prototype.getUTCSeconds()
Date.prototype.setDate() 현지 시간 기준으로 일을 설정합니다. Date.prototype.setFullYear() 현지 시간 기준으로 연도(네 자리 연도면 네 자리로)를 설정합니다. Date.prototype.setHours() 현지 시간 기준으로 시를 설정합니다. Date.prototype.setMilliseconds() 현지 시간 기준으로 밀리초를 설정합니다. Date.prototype.setMinutes() 현지 시간 기준으로 분을 설정합니다. Date.prototype.setMonth() 현지 시간 기준으로 월을 설정합니다. Date.prototype.setSeconds() 현지 시간 기준으로 초를 설정합니다. Date.prototype.setTime()
Date.prototype.setUTCDate() 국제 시간 기준으로 일을 설정합니다. Date.prototype.setUTCFullYear() 국제 시간 기준으로 연도(네 자리 연도면 네 자리로)를 설정합니다. Date.prototype.setUTCHours() 국제 시간 기준으로 시를 설정합니다. Date.prototype.setUTCMilliseconds() 국제 시간 기준으로 밀리초를 설정합니다. Date.prototype.setUTCMinutes() 국제 시간 기준으로 분을 설정합니다. Date.prototype.setUTCMonth() 국제 시간 기준으로 월을 설정합니다. Date.prototype.setUTCSeconds() 국제 시간 기준으로 초를 설정합니다. Date.prototype.toDateString()
Date.prototype.toISOString()
Date.prototype.toJSON()
Date.prototype.toLocaleDateString() (en-US)
Date.prototype.toLocaleFormat() 형식
문자열을 사용해서 Date.prototype.toLocaleString() (en-US) Date.prototype.toLocaleTimeString() (en-US)
Date.prototype.toString() Date.prototype.toTimeString() (en-US)
Date.prototype.toUTCString()
(en-US)
Date.prototype.valueOf()
예제Date 객체를 만드는 여러가지 방법아래 예제는 JavaScript 날짜를 생성하는 몇 가지 방법을 보입니다. 참고:
두 자리 연도는 1900년대로 1900년대가 아닌, 실제
경과시간 계산다음은 두 개의 JavaScript 날짜의 간격을 밀리초로 나타내는 예제입니다. 연, 월, 일(서머타임)의 길이가 계속해서 달라지므로, 두 시간의 간격을 시/분/초보다 큰 단위로 나타낼 땐 여러가지 문제가 생기므로 이 방법을 시도하기 전에 관련 문제를 먼저 자세히 알아보세요.
ECMAScript 시간으로부터 경과한 시간을 초 단위로 가져오기
여기서는 정수만 반환하는 것이 중요하므로, 단순히 나누기만 해서는 충분하지 않습니다. 그리고 실제로 "지나간" 초를 반환해야 하므로 명세
브라우저 호환성BCD tables only load in the browser 같이 보기 |