Javascript/GMA(2302~)

23.04.19 자바스크립트 내장객체(*Date 객체)

hyerin1201 2023. 4. 19. 22:30

Date 객체란? : 현 시점의 년도, 월, 일, 요일, 시간 등을 사용하고자 할 때 이용하는 내장객체

> 사용방법 : let 변수지정 = new Date( );

 

*객체에는 프로포타입인스턴스 라는 것이 있는데,

  • 자주 사용하는 기능을 하나의 객체로 만든 것 : 프로토타입
  • 프로토타입을 사용해 만들어낸 객체 : 인스턴스 

ex) let today = new Date( ); => Date( )객체 = 프로토타입  / today = 인스턴스객체 

 

*또한 자바스크립트에서 시간은 밀리초를 사용함으로 1000밀리초 = 1초가 된다.

60 * 1000 밀리초 = 1분

60 * 60 * 1000 밀리초 = 1시간

24 * 60 * 60 * 1000 밀리초 = 1일

 

* toDateString( ) : date에서 날짜 부분만 표시할 때

* toTimeString( ) : date에서 시간 부분만 표시할 때

 

*유의사항 > 특정 날짜 데이터를 사용하고자 할때 월(month)의 값은 1이 아닌 0부터 시작한다는 것을 기억해두자!

 

 

예제 1

let today = new Date();
let nowMonth = today.getMonth()+1;
let nowDate =  today.getDate();
let nowDay = today.getDay();

document.write("<h1>오늘 날짜 정보</h1>");
document.write("현재 월 : " + nowMonth + "월<br/>");
document.write("현재 일 : " + nowDate + "일<br/>");

let classOpen = new Date("2023-02-28");
let theMonth = classOpen.getMonth()+1;
let theDate = classOpen.getDate();

document.write("<h1>개강일 날짜 정보</h1>");
document.write("개강 월 : " + theMonth + "월<br/>");
document.write("개강 일 : " + theDate + "일<br/>");

 

 

예제 2

let today = new Date();
let nowYear = today.getFullYear();

let theDate = new Date(nowYear, 11, 31);
let difDate = theDate.getTime() - today.getTime();

let result = Math.ceil(difDate / (24 * 60 * 60 * 1000));
document.write("연말 D-day : " + result + "일 남았습니다")

 

 

예제 3

HTML body영역

<body>
  <div class="container">
    <div class="day1">
      <h3>우리 만난지</h3>
      <p id="accent" class="accent">
        <span></span>
      </p>
    </div>
    <div class="bar">기념일 계산</div>
    <div class="day2">
      <ul>
        <li class="item-title">100일</li>
        <li class="item-date" id="date100"></li>
      </ul>
      <ul>
        <li class="item-title">200일</li>
        <li class="item-date" id="date200"></li>
      </ul>
      <ul>
        <li class="item-title">1년</li>
        <li class="item-date" id="date365"></li>
      </ul>
      <ul>
        <li class="item-title">500일</li>
        <li class="item-date" id="date500"></li>
      </ul>
    </div>
  </div>
</body>

 

CSS

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
li {
  list-style: none;
}
.container {
  border: 1px solid #ccc;
  border-radius: 2%;
  width: 450px;
  margin: 100px auto;
  box-shadow: 2px 2px 5px #333;

  
}

.day1 {
  padding-top: 20px;
  text-align: center;
}
.day1 h3 {
  color: #666;
  font-size: 1em;
}
.day1 span {
  /* font-size: 1em; */
  font-style: italic;
}
.accent {
  margin-left: 10px;
  margin-right: 10px;
  margin-top: 10px;
  font-weight: bold;
  font-size: 2.3em;
}
.bar {
  width: 100%;
  margin: 60px auto 0 auto;
  padding-left: 15px;
  height: 40px;
  line-height: 40px;
  background-color: #747474;
  color: #fff;
  font-size: 1.2em;
}
.day2 {
  width: 420px;
  /* border: 2px solid red; */
  margin: 20px auto;
}
.day2 ul {
  border-bottom: 1px dashed #ccc;
  height: 60px;
  
}
.day2 ul:last-child {
  border-bottom: none;
}
.item-title {
  float: left;
  width: 160px;
  font-weight: bold;
  font-size: 1.5em;
  line-height: 60px;
}
.item-date {
  float: left;
  margin-left: 100px;
  line-height: 60px;
  text-align: right;
  font-size: 1.2em;
  color: #222;
}

Javascript

let now = new Date();
let firstDay = new Date("2023-02-28");

let toNow = now.getTime();
let toFisrt = firstDay.getTime();
let passedTime = toNow - toFisrt
let passedDay = Math.round(passedTime / (24 * 60 * 60 * 1000));

document.querySelector("#accent span").innerText = passedDay + "일";


function calcDate(e) {
  let future = toFisrt + e * (24 * 60 * 60 * 1000);
  let someDay = new Date(future);
  let year = someDay.getFullYear();
  let month = someDay.getMonth() + 1;
  let date = someDay.getDate();

  document.querySelector("#date" + e).innerText = year + "년" + month + "월" + date + "일";
}
calcDate(100);
calcDate(200);
calcDate(365);
calcDate(500);