본문 바로가기

JavaScript/JavaScript기초

[Javascript] 날짜(Date)

Date 객체

Date 객체는 날짜를 저장하고 날짜 관련 메서드를 지원해 줌

 

Date 객체 생성

new Date()를 이용하여 Date 객체 생성

// 현재시간이 저장된 날짜 객체를 생성
let now_date = new Date();

console.log(now_date);

 

 

new Date(milisecond) 형태로 1970 년 1월 1일 0시 0분 0초를 기준으로 milisecond 를 추가한 시간을 생성(하지만 한국 표준시로 출력되므로 9시로 생성됨)

// 1970년 1월 1일 0시 0분 0초의 날짜 생성(한국 표준시 기준이므로 9시로 출력)
let first = new Date(0);

// 1970년 1월 1일 에 2일을 추가한 1970년 1월 3일 날짜 생성
let second = new Date(48 * 3600 * 1000);

console.log(first);
console.log(second);

 

 

new Date(datestr) 안에 날짜를 직접 주어서 해당 날짜를 출력함

let date = new Date("2021-09-01");

console.log(date);

 

 

new Date(year, month, date, hours, minutes, seconds, ms) 형태로 숫자형 타입을 주어서 날짜를 생성할 수 있음

let date =new Date(2021, 09, 05, 10, 20, 40, 541);

console.log(date);

 

 

날짜 객체 구성요소 설정

아래 메서드들을 이용하여 날짜의 구성요소를 설정할 수 있음 ([]는 옵션, month는 0부터 1월)

  • setFullYear(year, [month], [date])
  • setMonth(month, [date])
  • setDate(date)
  • setHours(hour, [min], [sec], [ms])
  • setMinutes(min, [sec], [ms])
  • setSeconds(sec, [ms])
  • setMilliseconds(ms)
  • setTime(milliseconds)

 

자동고침

Date객체는 자동고침 기능이 있어서 범위를 벗어나는 날짜는 자동으로 변경 ex) 1월 32일 -> 2월 1일로 변경

let date = new Date(2021,2,32); //3월 32일은 존재하지 않음

console.log(date) //자동으로 4월 1일로 변경

 

 

setDate(num) 의 매개변수로 0을 주면 이전달의 마지막 일로 변경

let date = new Date(2021,2,1); //2021 3월 1일

date.setDate(0);

console.log(date)

 

2월 28일로 변경

 

Date.parse

YYYY-MM-DDTHH:mm:ss.sssZ 형식의 문자열을 Date.parse(str) 를 이용하여 문자열로 변경할 수 있음

 

YYYY-MM-DD : 년-월-일

T : 날짜와 시간의 구분기호

HH:mm:ss.sss : 시-분-초-밀리초

Z : 시간을 am, pm 시로 변경 (옵션)

 

let date_str = Date.parse("2021-03-09T21:40:39.332");
let date = new Date(date_str);

console.log(date)

 

 

get 메서드를 이용하여 날짜 포맷 변경

get 메서드는 위의 set메서드를 get으로 변경하면 됨

 

날짜 포맷 함수 생성

function setDateFormat(date,separ,isTime){ //날짜,날짜 구분자, 시간도 출력할건지

	let _year = date.getFullYear(); 
    let _month = date.getMonth();
    let _date = date.getDate();
    
    let result = [_year,_month,_date].join(separ);
    if(isTime){
    	let _hour = date.getHours();
        let _min = date.getMinutes();
        let _sec = date.getSeconds();
        let _mili = date.getMilliseconds();
        result += ' '+[_hour,_min,_sec,_mili].join(":");
    }
    return result;
}

console.log(setDateFormat(new Date,'-',true));
console.log(setDateFormat(new Date,'-',false));

 

'JavaScript > JavaScript기초' 카테고리의 다른 글

[Javascript] new Function 문법  (0) 2021.09.09
[Javascript] JSON  (0) 2021.09.08
[Javascript] 이터러블(iterable)  (0) 2021.09.05
[Javascript] 구조 분해 할당  (0) 2021.09.02
[Javascript] Map과 Set  (0) 2021.09.01