Web/Javascript

[Javascript] 모던 JS 5.11 (Date 객체와 날짜) 과제

동띵 2022. 6. 27. 23:46

1) 날짜 생성하기

let date = new Date(2012, 1, 20, 3, 12);
alert(date);

 

2) 요일 보여주기

// switch문 사용
function getWeekDay(date) {
    switch(date.getDay()) {
        case 0:
            return 'SU';
            break;
        case 1:
            return 'MO';
            break;
        case 2:
            return 'TU';
            break;
        case 3:
            return 'WE';
            break;
        case 4:
            return 'TH';
            break;
        case 5:
            return 'FR';
            break;
        case 0:
            return 'SA';
            
    }
}

// array 사용
function getWeekDay(date) {
  let days = ['SU', 'MO', 'TU', 'WE', 'TH', 'FR', 'SA'];
  return days[date.getDay()];
}

 

3) 유럽 기준 달력

function getLocalDay(date) {
  let day = date.getDay();
  if (day === 0) { 
    day = 7;
  }
  return day;
}

 

4) n일 전 '일' 출력하기

function getDateAgo(date, days) {
    let newDate = new Date(date);
    newDate.setDate(date.getDate() - days);
    return newDate.getDate();
}

 

5) 달의 마지막 일

function getLastDayOfMonth(year, month) {
    let date = new Date(year, month+1, 0);
    return date.getDate();
}

 

6) 몇 초나 지났을까요?

function getSecondsToday() {
    let day = new Date();
    return day.getHours()*3600 + day.getMinutes()*60 + day.getSeconds();
}

 

7) 몇 초나 남았을까요?

function getSecondsToTomorrow() {
    let now = new Date();
    let tomorrow = new Date(now.getFullYear(), now.getMonth(), now.getDate()+1);

    let diff = tomorrow - now;
    return Math.round(diff/1000);
}

 

8) 상대 날짜 출력하기

function formatDate(date) {
  let diff = new Date() - date;

  if (diff < 1000) { return '현재'; }

  let sec = Math.floor(diff / 1000); 
  if (sec < 60) { return sec + '초 전'; }

  let min = Math.floor(diff / 60000); 
  if (min < 60) { return min + '분 전'; }

  let d = date;
  d = [
    '0' + d.getDate(),
    '0' + (d.getMonth() + 1),
    '' + d.getFullYear(),
    '0' + d.getHours(),
    '0' + d.getMinutes()
  ].map(component => component.slice(-2)); 

  return d.slice(0, 3).join('.') + ' ' + d.slice(3).join(':');
}