Java Script

Growing_HJ·2024년 7월 2일

일기장

목록 보기
42/51

20240702 TUE, 데이터 객체와 날짜
A. 데이터 객체와 날짜

  • 데이터 객체 생성하기
let date = new Date(); // 객체 생성자
console.log(date);
// 협정 세계식 = UTC + 0
date = new Date(0);
console.log(date); // 한국 표준시: 기준시간보다 9시간 빠름.
  • timestamp 를 사용한 Date 객체 생성하기
/* 타임 스탬프 : UTC + 0 을 기준으로 지난 시간을 밀리초로 환산한 값 */
date = new Date(24 * 2 * 3600 * 1000);
console.log(date);
  • 문자열로 Date 객체 생성하기
let date1 = new Date("2000-10-20/00.00.00");
let date3 = new Date("2000.10.20/00.00.00");
let date2 = new Date("2000/10/20/00.00.00");
let date4 = new Date("2000 10 20/00.00.00");
console.log("date1 : " + date1);
console.log("date2 : " + date2);
console.log("date3 : " + date3);
console.log("date4 : " + date4);
  • 숫자로 Date 객체 생성하기
// 년, 월, 일, 시, 분, 초, 밀리초 순서로 매개변수를 설정하기.
let date5 = new Date(2024, 7, 2, 0, 0, 0, 0);
console.log("date5 : " + date5);
  • 숫자와 타임스탬프를 사용하여 객체 생성하기
date5 = new Date(2024, 6, 2);
let timestamp = date5.getTime();
console.log("date5 : " + date5);

let dateClone = new Date(timestamp);
console.log("dateClone: " + dateClone);
  • Date 객체에서 제공되는 메소드 : getter
// 1. getFullYear
console.log("getFullYear : " + dateClone.getFullYear());

// 2. getMonth : 월을 반환, 0~11 범위.
console.log("getMonth: " + dateClone.getMonth());

// 3. getDate : 일을 반환.
console.log("getDate : " + dateClone.getDate());

// 4. getDay : 요일을 반환 0(일) ~ 6(토) 범위
console.log("getDay : " + dateClone.getDay());
  • Date 객체에서 제공되는 메소드 : setter
// 1. setFullYear  : 연도 수정
dateClone.setFullYear(1999);
console.log(dateClone);

// 2. setMonth : 월 수정
dateClone.setMonth(9);
console.log(dateClone);

// 3. setDate : 일 수정
dateClone.setDate(19);
  • Date 객체에서 제공되는 메소드: 출력(문자열로 반환), toString()
console.log(dateClone.toString()); // 날짜, 시간정보
console.log(dateClone.toDateString()); // 날짜
console.log(dateClone.toLocaleString()); // year.month.date 순서의 날짜, 시간정보
console.log(dateClone.toLocaleDateString()); // year.month.date 순서의 날짜

B. Date 객체 응용하기 - n월 단위로 이동해보기

날짜로 해당 객체를 조회 -> 검색 결과가 배열로 반환됨 
- 배열에서 제공되는 메소드 (탐색메소드 -> filter() 메소드를 활용)
filter 메소드의 매개변수로 callback 메소드를 전달 == 검색 조건 구현
// 1. n월 단위로 이동
function moveMonth(date, moveMonth) {
  // moveMonth - 이동하고 싶은 월의 단위
  // 1. 매개변수 date 객체의 월 정보 가져오기
  const curTimestamp = date.getTime();
  const curMonth = date.getMonth();

  const resultDate = new Date(curTimestamp);

  // 2. 가져온 월 정보에 +moveMonth 더해주기
  // 더한 월을 설정 -> setMonth 사용하기
  resultDate.setMonth(curMonth + moveMonth);
  return resultDate;
}
const dateA = new Date("1999-10-19");
console.log(dateA.toDateString());

const dateB = moveMonth(dateA, 2);
console.log(dateB);

const dateC = moveMonth(dateA, -1);
console.log(dateC);

Date 객체 응용하기2

  • 날짜가 프로퍼티로 있는 객체 배열에서 날짜로 해당 객체를 조회하기
/* 첫번째 매개변수 : 검색날짜 조건
   두번째 매개변수 : date 정보가 프로퍼티로 있는 객체배열*/
function filterThisMonth(searchConditionDate, dateArray) {
  // 매개변수에서 년, 월 정보를 취득
  const year = searchConditionDate.getFullYear();
  const month = searchConditionDate.getMonth();

  // 시작일 종료일 날짜 생성 : 검색범위
  const startDate = new Date(2000, 9, 1, 0, 0, 0, 0);
  console.log("startDate : " + startDate);
  const endDate = new Date(2000, 9 + 1, 0, 23, 59, 59, 0);
  console.log("endDate : " + endDate);

  // 두 번째 매개변수의 filter 메소드를 사용.
  // 검색 범위의 값은 timestmap로 사용.
  const resultArray = dateArray.filter(
    // 콜백 메소드
    (item) =>
      startDate.getTime <= item.getTime() && item.getTime <= endDate.getTime()
  );
  // 검색 결과 배열 반환.
}
const dateArray = [
  new Date("1999-10-19"), // 검색 결과 대상
  new Date("2002-03-07"), // 검색 결과 대상
  new Date("2024-05-19"), // 검색 결과 대상
  new Date("2024-07-07"), // 검색 결과 대상
  new Date("2024-05-12"), // 검색 결과 대상
];
const today = new Date("2000-10-10/00:00:00");

const filterArray = filterThisMonth(today, dateArray);

console.log("filterArray : " + filterArray);

0개의 댓글