파머의 라이브러리

반응형

들어가며

Javascript에서 시간에 관련하여 많이 사용하는 클래스가 Date입니다.

Date 클래스에는 여러 함수가 있지만, 그중 Date.now()를 이용하면 1970년 1월 1일부터 현재까지의 지난 시간의 millisecond를 구할 수 있습니다.

 

 이것과 관련하여 왜 1970년 1월 1일이 기준시간인지 문득 궁금해져서 찾아보았는데

1970년도 초반에 개발된 유닉스의 초기 모델은 시스템 시간을 1/60초 간격으로 측정하였고 그로 인하여 32비트 부호가 없는 정수로는 약 829일 미만을 나타낼 수 있었다고 합니다. 그렇기 때문에 최초 시간을 최근의 과거로 정의하여야 했는데 그 날짜가 1971/1/1이었다고 합니다. 그 후 시간이 지나며 1/60초 간격으로 측정하던 시스템 시간을 1초 간격으로 증가시켰고, 그 덕분에 최대로 32비트 부호 없는 정수로 계산할 수 있던 날짜가 829일에서 약 136년으로 늘어났다고 합니다. 그로 인해 더 이상 최초 시간을 최근의 과거로 정의하는 것이 의미가 없어져 비교적 온전한 날짜인 1970/1/1로 정의하였다고 합니다.

 

참고로 1초는 1000밀리초, 1분은 6만 밀리초, 1시간은 3천6백만 밀리초입니다.

 

 

오늘 자정의 밀리초 구하기

오늘의 자정 밀리초를 구하는 방법은

1970년 1월 1일 기준일부터 2020년 05월 29일 00시 00분 00초 오늘이 시작된 시간의 밀리초를 구하기 위해선 현재의 밀리초를 구한다음, 현재의 시, 분, 초 각각의 밀리초를 빼면 구할 수 있습니다.

// 오늘의 00시 00분 00초를 구한다
var nowMil = Date.now()
var nowDateType = new Date(nowMil)
var startTime = nowMil - (nowDateType.getHours() * 3600000) - (nowDateType.getMinutes() * 60000) 
			- (nowDateType.getSeconds() * 1000)

 

 

내일 자정의 밀리초 구하기

내일의 자정 밀리초를 구하는 방법은

기준일부터 현재의 밀리초를 구한다음, 하루에 해당하는 86,400,000 밀리초를 더해주고 현재의 시, 분, 초 각각의 밀리초를 빼주면 구할 수 있습니다.

// 내일의 00시 00분 00초를 구한다
var tomrrowMil = Date.now() + 86400000;
var tomrrowDateType = new Date(tomMil)
var startTime = tomrrowMil - (tomrrowDateType.getHours() * 3600000) - (tomrrowDateType.getMinutes() * 60000) 
			- (tomrrowDateType.getSeconds() * 1000)
반응형

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band