미분류/Tip
ISO Date를 가공하기
DarrenKwonDev
2020. 7. 26. 16:11
일반적으로 게시판 형태에서 게시물이 작성된 시간은 하루 이상 차이가 나면 YYYY.MM.DD 2020.03.05, 하루 이하로 차이가 나면 HH.MM.SS 05:28:22 로 표기가 됩니다. ISO를 이런 방식으로 바꿔봅시다.
ISO
그런데 현재 받아오는 날짜의 시간 형태는 ISO 형식이군요.
https://ko.wikipedia.org/wiki/ISO_8601
2020-07-25T16:12:08.454Z
여기서 T는 시간 표현의 시작을 알리는 시간(time) 지정자입니다. (T 이후로는 날짜가 아닌 시간!)
Z는 시간이 UTC인 경우, 시간 뒤에 빈칸없이 Z를 직접 추가해야 합니다.
이 형식의 의미는 2020년 7월 25일 16시 12분 08.454초 UTC 라는 의미군요
한국 시간으로 변경 + 날짜 데이터 가공하기
toISOString을 이용해서 시간을 더하는 방식에서 toLocaleString을 이용해 한국 시간으로 변환한 후 가공하는 방식으로 변경했습니다.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString
export function ISORefining(data) {
let getPostTime = new Date(data);
let current = new Date(Date.now());
const dateOptions = {
year: "numeric",
month: "numeric",
day: "numeric",
hour12: false,
hour: "2-digit",
minute: "2-digit",
second: "2-digit",
};
const postTimeinLocal = getPostTime.toLocaleString("ko-KR", dateOptions);
const postTimeinLocalSplit = postTimeinLocal.split(".");
const postYear = postTimeinLocalSplit[0];
const postMonth = postTimeinLocalSplit[1];
const postDay = postTimeinLocalSplit[2];
const postYMD = `${postYear.trim()}-${postMonth.trim()}-${postDay.trim()}`;
const postTime = postTimeinLocalSplit[3];
const currentTimeinLocal = current.toLocaleString("ko-KR", dateOptions);
const currentTimeinLocalSplit = currentTimeinLocal.split(".");
const curYear = currentTimeinLocalSplit[0];
const curMoth = currentTimeinLocalSplit[1];
const curDay = currentTimeinLocalSplit[2];
if (postYear > curYear) {
return postTime;
} else if (postMonth > curMoth) {
return postTime;
} else if (postDay + 1 > curDay) {
return postTime;
} else {
return postYMD;
}
}