현재 시간의 Date 인스턴스
new Date()
인수의 지정 시각의 Date 인스턴스
new Date(year,month,date,hours,minutes,secounds)
월(month)의 지정은 0 시작인 것에 주의!
//2021년1월15일 22시30분 경우
new Date(2021,0,15,22,30)
new Date(value)
인수를 에포크 밀리 세컨드로 해석한 Date 인스턴스
Date()
현재 시간 문자열
인스턴스에서 다양한 값 검색
인스턴스는 에포크 타임으로 시각을 보관 유지하고 있어 캐릭터 라인이나 수치로서 꺼낼 때에 로케일이나 타임 존에 맞추어 변환됩니다.
다음은 모두 모두 로컬 시간.
var dt = new Date();
//년
var year = dt.getFullYear();
//월
//1월이 0 이므로 더하기1을 해줍니다
var month = dt.getMonth()+1;
//일
var date = dt.getDate();
//요일
//일요일이 0, 토요일이 6 이므로 배열로 텍스트로 변환
dateT = ["일","월","화","수","목","금","토"];
var day = dateT[dt.getDay()];
//시
var hours = dt.getHours();
//분
var minutes = dt.getMinutes();
//초
var seconds = dt.getSeconds();
인스턴스에 다양한 값 설정
규정치의 범위를 초과하면 이월됩니다 예를 들어, setMonth로 12를 설정하면 0이 됩니다 (11이 12월이므로 0은 1월)
반대로 규정치의 범위를 밑돌면 돌아온다. setMonth로 -1을 설정하면 10이 됩니다
이것은 날짜의 덧셈 감산에 이용됩니다
var dt = new Date();
//년
dt.setFullYear(2015);
//월
//1월이0、12월이11。
dt.setMonth(10);
//일
dt.getDate(30);
//요일
//일요일이0、土요일이6。
dt.getDay(1)
//시
dt.getHours(21);
//분
dt.getMinutes(30);
//초
dt.getSeconds(15);
날짜 추가 빼기
달의 가산이나 감산, 더 나가서 일자의 가산 감산은 달에 의해 일수가 달라질 수 있기 때문에 단순하게 계산하는 것은 어려우나 set계의 프로퍼티를 사용해 계산하면 간단하게 할 수 있습니다.
달, 일, 시간, 분을 더하거나 뺴기만 하면 됩니다.
var dt = new Date();
//3개월후
dt.setMonth(dt.getMonth() + 3);
//3개월전
dt.setMonth(dt.getMonth() - 3);
//3일후
dt.setDate(dt.getDate() + 3);
//3시간후
dt.setHours(dt.getHours() + 3);
//3분후
dt.setMinutes(dt.getMinutes() + 3);
날짜 차이
getTime()으로 에포크 밀리 세컨드를 취득해 뺀 값을 냅니다. 그것을 나누어 변환합니다. 소수를 반올림할지 잘라낼지는 그때 그때 결정.
연, 주, 일, 시, 분, 초, 밀리초의 경우.
var diff = dst.getTime() - src.getTime();
//초
var second = diff/1000;
//분
var minute = diff/1000*60;
//시
var hour = diff/1000*60*60;
//일
var day = diff/1000*60*60*24;
//년
var day = diff/1000*60*60*24*365;
Date 클래스의 정적 속성
new라든지 하지 않아도 사용할 수 있는 프로퍼티.
now()
현재 시간의 에포크 밀리 세컨드를 돌려줍니다.
parse(string)
인수 문자열을 구문 분석하고 에포크 밀리초를 반환합니다.
비교하다
epoch 초를
객체 를 getTime()으로 비교하여 비교할 때 크기는 날짜 비교이지만 == 및 ===는 객체 자체 비교입니다.
if(date1.getTime() > date2.getTime(){
}
기타
날짜를 취급한다면 moment.js가 편리합니다.