새소식

카테고리 없음

javascript Date

  • -
728x90

회사에서 날짜 계산을 js 로 처리하는 부분에 CS 요청이 들어와 수정해야 하는 일이 생겨 작업하던 중 새로 알게 된 부분이 있어 정리해 보려고 한다.

Date() 생성자

: Date 생성자는 시간의 특정 지점을 나타내는 Date 객체를 플랫폼에 종속되지 않는 형태로 생성합니다. Date 객체는 1970년 1월 1일 UTC(국제표준시) 자정으로부터 지난 시간을 밀리초로 나타내는 UNIX 타임스탬프를 담습니다.

위의 내용은 mdn에 기재되어 있는 Date 생성자에 대한 설명이다.

 

필자는 7일전부터 오늘까지의 날짜 data가 필요하여 그에 맞게 가공하였다.

 

var now = new Date();
now => Thu Oct 13 2022 16:40:06 GMT+0900 (한국 표준시)

var timeStamp = now.getTime();
timeStamp => 1665646806168

[PHP]
$now = time();
$now => 1665647516

var timeStamp1 = Math.floor(now.getTime());
timeStamp1 => 1665646806

PHP 의 $now 값과 자릿수가 다름을 확인할 수 있다.

new Date() 로 선언한 now 를 getTime() 을 사용하여 TimeStamp로 변환할 수 있는데 이는 밀리초까지 나타내기 때문에 

Math.floor(now.getTime() / 1000) 와 같이 사용할 수 있다.

 

이제 7일 전의 timestamp 를 구해 용도에 맞게 가공해보겠다.

 

 

# Date.getTime()

// 나노까지 측정하기 때문에 86400 * 1000
var now = new Date();

// 오늘
var date1 = Math.floor(now.getTime());
var timeStamp1 = new Date(date1);

var year1 = timeStamp1.getFullYear();
var month1 = ("0" + (1 + timeStamp1.getMonth())).slice(-2);
var day1 = ("0" + timeStamp1.getDate()).slice(-2);
var dt2= year1 + "."+month1+"."+day1;

// 7일전
var date2 = date1 - 86400 * 1000 * 7;
var timeStamp2 = new Date(date2);

var year2 = timeStamp2.getFullYear();
var month2 = ("0" + (1 + timeStamp2.getMonth())).slice(-2);
var day2 = ("0" + timeStamp2.getDate()).slice(-2);
var dt1= year2 + "."+month2+"."+day2;

dt1 => '2022.10.06'
dt2 => '2022.10.13'

위에서 말했다 싶이 밀리세컨드까지 출력되기 때문에 7일 전의 데이터를 구할 때도 1000을 곱하여 86400 * 1000 * 7 로 처리를 했다.

 

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

 

Date() 생성자 - JavaScript | MDN

Date 생성자는 시간의 특정 지점을 나타내는 Date 객체를 플랫폼에 종속되지 않는 형태로 생성합니다. Date 객체는 1970년 1월 1일 UTC(국제표준시) 자정으로부터 지난 시간을 밀리초로 나타내는 UNIX

developer.mozilla.org

 

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Date/getTime

 

Date.prototype.getTime() - JavaScript | MDN

getTime() 메서드는 표준시에 따라 지정된 날짜의 시간에 해당하는 숫자 값을 반환합니다.

developer.mozilla.org

 

728x90
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.