노션에서는 수식 속성을 활용하여
마감일(= 남은 일자, D-Day)을 계산할 수 있다.
📌 [노션] 데이터베이스 수식(formula) 속성 활용
D-Day 계산을 위해
[날짜 속성] 항목도 필요하다.
간단하게 구현한다면 아래 2가지 함수로도 가능한다.
• dateBetween(): 두 날짜 사이 시간을 구하는 함수 (Time 단위 설정 가능)
• now(): 현재 날짜와 시간을 가져오는 함수
해당 포스팅 제작은 [3월 29일 (= 오늘)] 이다.
dateBetween(prop("날짜"), now(), "days")
위와 같은 방식에는 2가지 아쉬운 점이 있다.
• 예상값보다 평균적으로 「-1」 되어 있다.
• now()로 생성되는 시간에 따라 하루 정도 오차 발생 ↑
* 하루 이틀 오차가 상관 없다면 그대로 사용해도 된다.
추정하는 오차 원인으로,,,
[날짜] 속성의 보이지 않는 시간대인 것 같다. 🤔
[날짜 속성] 세부 옵션에는 [시간 포함]이 있다.
기본적으로 해당 날짜 「00:00」 이다.
현재 날짜 + 시간까지 들고오는 now()와 계산될 때
현재 시간과 분도 같이 계산되는지
예상 결과값이 오차가 발생하는 것이다.
개인적으로 적용해본 해결 방법은
now()로 추출한 현재시간에서 시간(hour)과 분(minutes)을 빼주는 것이다.
(= [날짜 속성]과 동일한 시간과 분으로 맞추는 것)
ex) 현재시간이 [2022/01/01 14:38] → [2022/01/01 00:00]
dateSubtract(dateSubtract(now(), hour(now()), "hours"), minute(now()), "minutes")
DB에 적용하면 아래와 같다.
어제, 오늘, 내일이 알맞은 값으로 표시되었다.
dateBetween(prop("날짜"), dateSubtract(dateSubtract(now(), hour(now()), "hours"), minute(now()), "minutes"), "days")
D-Day 꾸며보기
D-Day를 단순히 숫자로 표시하지 않고 "D - {남은 일자}로 표시"
ex) 하루 남았으면 "D - 1"
concat("D - ", format(dateBetween(prop("날짜"), dateSubtract(dateSubtract(now(), hour(now()), "hours"), minute(now()), "minutes"), "days")))
• format을 통해 계산한 「D-Day」 수치를 문자열로 변경한다.
• concat으로 "D - " + "{계산된 날짜}" 문자열을 합친다.
* [참고] 반환된 값도 문자열
지난 일자에 대해서는 "D + {남은 일자}"로 표시하고 싶은 경우
ex) 하루 지난 경우 "D + 1", 이틀 지난 경우 "D + 2"
if(dateBetween(prop("날짜"), dateSubtract(dateSubtract(now(), hour(now()), "hours"), minute(now()), "minutes"), "days") < 0, concat("D + ", format(dateBetween(prop("날짜"), dateSubtract(dateSubtract(now(), hour(now()), "hours"), minute(now()), "minutes"), "days") * -1)), concat("D - ", format(dateBetween(prop("날짜"), dateSubtract(dateSubtract(now(), hour(now()), "hours"), minute(now()), "minutes"), "days"))))
• if 를 활용해서 {남은 일자}가 음수이며 「-1」 곱해서 양수로 변경한다.
→ if (결과 < 0, 결과 * -1,결과)
* 처리하는 방식에 따라 다르게 구현할 수도 있다.
'Notion' 카테고리의 다른 글
[Notion Tip] 노션 탭 활용 및 즐겨찾기 추가 (0) | 2023.01.30 |
---|---|
[노션 Notion] 진행상황(Progress bar) 구현하기 (7) | 2022.05.01 |
[노션 Notion] 데이터베이스 표 「복제」와 「링크 복사」 차이점 (0) | 2022.03.01 |
[노션] Notion 이미지 좌/우 정렬 효과 가져보기 (0) | 2022.01.20 |
[Notion] 노션 데이터베이스 다양한 View 활용 (0) | 2022.01.14 |
댓글