본문 바로가기
javascript/javascript

시간 계산(몇분전, 몇일전, 몇년전..)

by 알찬 퍼블리셔 2022. 9. 5.
728x90
반응형

 

 

//현재시간
var now = new Date(); 
//기준시간 
var writeDay = new Date(time);
  
//현재 시간과 기준시간의 차이를 getTime을 통해 구한다 
var difference = now.getTime() - writeDay.getTime();
//초로 바꿔준다 
difference = Math.trunc(difference / 1000);

 

기준점을 만든다 

// 초 
const seconds = 1;
// 분
const minute = seconds * 60;
// 시
const hour = minute * 60;
// 일
const day = hour * 24;
// 달
const mon = day * 30;
// 년
const year = mon * 12;

 

difference 를 seconds로 나누면 초가되고 minute로 나누면 분이되고 hour 로 나누면 시가 된다

이를 이용해서 

 

if(difference < seconds ){
    ResultTime = "바로" // 1초보다 작으면 바로 전
  }else if(difference < minute){
    ResultTime = Math.trunc(difference / seconds) + '초 ';
    //분보다 작으면 몇초전인지
  }else if(difference < hour){
    ResultTime = Math.trunc(difference / minute) + '분 ';
    //시보다 작으면 몇분전인지
  }else if(difference < day){
    ResultTime = Math.trunc(difference / hour) + '시 ';
    //일보다 작으면 몇시간전인지 
  }else if(difference < mon){
    ResultTime = Math.trunc(difference / day) + '일 ';
    //달보다 작으면 몇일 전인지
  }else if(difference < year){
    ResultTime = Math.trunc(difference / mon) + '달 ';
    //년보다 작으면 몇달전인지
  }else{
    ResultTime = Math.trunc(difference / year) + '년 ';
  }

 

이때 Math.trunc() 이란? 

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Math/trunc

 

Math.trunc() - JavaScript | MDN

Math.trunc() 함수는 주어진 값의 소수부분을 제거하고 숫자의 정수부분을 반환합니다.

developer.mozilla.org

 

 

이걸 이용해서 전체 몇년 몇달 몇일 몇시간 몇분 몇초전인지 구한다 

resultYear = Math.trunc(difference / year);
//몇년전인지 나누어본다 
  if(resultYear > 0){ // 0보다크면 년도를 구함
    ResultTime += resultYear+'년 ';
    difference= difference - (resultYear * year);
  }
  resultMon = Math.trunc(difference / mon);
  if(resultMon > 0){ // 몇달전인지
    ResultTime += resultMon+'월 ';
    difference=  difference - (resultMon * mon);
  }
  resultDay = Math.trunc(difference / day);
  if(resultDay > 0){ //몇일전인지
    ResultTime += resultDay+'일 ';
    difference = difference - (resultDay * day);
  }
  resultHour = Math.trunc(difference / hour);
  if(resultHour > 0){ //몇시간전인지
    ResultTime += resultHour+'시 ';
    difference = difference - (resultHour * hour);
  }
  resultMin = Math.trunc(difference / minute);
  if(resultMin > 0){ //몇분전인지 
    ResultTime += resultMin+'분 ';
    difference = difference - (resultMin * minute);
  }
  resultSec = Math.trunc(difference / seconds);
  if(resultSec > 0){ // 몇초 전인지 
    ResultTime += resultSec+'초 ';
    difference = difference - (resultSec * seconds );
  }

 

 

 

 

 

 

 

 

728x90
반응형

댓글