Firebase Timestamp로 날짜, 시간 추출방법

대빵·2023년 10월 11일
2

firerbas 날짜, 시간

let doc = {
date: new Date()
};

파이어베이스에서 key값(?) date값을 가지고오려고 new Date() 함수를 사용해서 date값을 가지고와야한다.

const row = doc.data();

row에다가 doc.data()의 값을 가져와 row로 저장한다.

const date = row['date'];
console.log(date);
// nanoseconds: 649000000
// seconds: 1697023427
// [[Prototype]]: Object

row['date']의 값을 date값에 넣어 console.log로 확인해보면 다음같이 나온다.

const day = date.toDate()
console.log(day);
// Wed Oct 11 2023 20:23:47 GMT+0900 (한국 표준시)

date에 있는 정보를 보기 쉽게하려면 firebase에서 timestamp을 이용해야되는데 거기서 사용되는 함수가 .toDate() 사용해서 요일 월 일 년 시간을 알수 있다.

날짜 포맷 변경하기(YYYY-MM-DD)

var year = day.getFullYear();
var month = ('0' + (day.getMonth() + 1)).slice(-2);
var days = ('0' + day.getDate()).slice(-2);

String.prototype.padStart() 개념과 비슷한 개념임

날짜 추출 함수를 사용할때 주의해야 할 점은 getMonth() 함수인데, getMonth() 함수는 0~11을 반환하기 때문에 항상 +1을 해줘야한다. 그리고 getMonth(), getDate() 함수는 수치 값을 반환하기 때문에 2자리를 맞추기 위해서는 "0"을 붙여서 뒤에서 2자리만 잘라서 값을 변환해야 한다.

var dateString = year + '-' + month + '-' + days;

시간 포맷 변경하기 (HH:MM:SS)

var hours = ('0' + day.getHours()).slice(-2);
var minutes = ('0' + day.getMinutes()).slice(-2);
var seconds = ('0' + day.getSeconds()).slice(-2);

시간 포맷 변환 또한 날짜와 비슷하며, getHours(), getMinutes(), getSeconds() 함수도 수치 값을 반환하기 때문에 2자리를 맞추기 위해서는 "0"을 붙여서 뒤에서 2자리를 잘라줘야 한다.

var timeString = hours + ':' + minutes + ':' + seconds;

콘솔에 찍어서 한번 확인해보기!!(완-성!!)

console.log(dateString); // 2023-10-11
console.log(timeString); //20:23:47

0개의 댓글