본문 바로가기
공부/Notion 노션

노션 함수로 요일, today, 디데이 표시하기

by 슈쑥 2023. 1. 12.
반응형

 

2023/07/17

오류가 있어서 수식 전체적으로 수정했습니다.
혹시 이전에 보고 사용하신 분이 계시다면 죄송...합니다...ㅎ..ㅎㅎ...

 

 

 

 

목차

1. 요일표시

1) 요일만 표시

2) 날짜와 요일 표시

 

2. today 표시

1) 체크표시로 표시

2) 이모지로 표시

+) 날짜와 투데이 같이 표시하기

 

3. 날짜+요일+시간+투데이 표시하기

 

4. 디데이 표시하기

1) 간단히 숫자로만 (-n, n)

2) 문자로 (n일 전, d-day, n일 후)

 

 

노션의 기본 날짜 표시 형식에는 요일이 없습니다.

요일 표시는 데이터베이스의 Formula(수식)을 사용해주고, 기존의 날짜 속성을 숨겨주시면 됩니다.

 

오늘 알아야 할 수식은 

 

  • format() : 숫자를 텍스트로 변환 ex) 16 -> "16"
  • formatDate( 날짜, "표시형식" ) : Date 데이터를 원하는 "표시형식"으로 보여줌
  • now() : 오늘 날짜 표시
  • if(조건, 조건이 참일 때 출력 값, 조건이 거짓일 때 출력 값)

 

 


 

 

//  요일 표시하기  //

 

※ 한글버전 쓰시면 "날짜" 속성, 영어버전 쓰시면 "Date" 속성입니다.

수식 복붙 하신 후 한글버전은 수식에 "Date"로 표시된 부분을 "날짜"로 변경해서 사용하셔야 합니다.

 

 

(아래에 정리된 수식 있어요 읽기 귀찮으시면 그냥 내리셔도 됩니다:))

데이터베이스에 Formula 또는 수식칸을 만들기 

> 속성(Prop) 편집 > ①수식 변경

>   ②formatDate(  를 직접 치거나 스크롤 쭉쭉 내려서 사진처럼 선택

>   ③다시 스크롤 맨 위로 올려서 "날짜" 클릭 or  prop("날짜") 입력 or prop("Date")

 

표시형식 참고

 

>    , 쉼표 하나 찍어주고 원하는 표시형식 넣어주기 사진 참조

> 괄호 착착 닫아주고 완료 버튼 누름 끝

 

<요일표시 수식(함수)>

요일 formatDate(prop("날짜"), "ddd")
요일2 formatDate(prop("날짜"), "ddd") + "요일" 월요일
일 (요일) formatDate(prop("날짜"), "DD (ddd)") 01 (월)
참고 YYYY 년 / MM 월 / DD일 / ddd 요일 / hh 시 / mm 분  

 

 


 

 

//  오늘 날짜(today) 표시하기  //

 

 

<체크표시로 today 표시>

equal(formatDate(now(), "YY/MM/DD/ddd"), formatDate(prop("Date"), "YY/MM/DD/ddd"))

 

오늘 now()가 prop("날짜")와 equal 한가 물어보는 수식입니다.

이렇게만 넣어줘도 체크박스로 오늘 날짜가 표시되는데

체크표시는 너무 투박하니 바꿔봅시다.

 

if 함수 사용해서 문구 넣기

 

<오늘 날짜에 이모지 표시>

if(equal(formatDate(now(), "YY/MM/DD/ddd"), formatDate(prop("날짜"), "YY/MM/DD/ddd")), "🥞", "")

 

위 수식에 if문만 달아주면 오늘 날짜에 핫케이크가 표시됩니다.

오늘 날짜가 그냥 간단하게 "today"만 뜨면 좋겠다 하시면 

핫케이크를 today로 바꿔주시면 됩니다.:)

 

+if문 말고 True로도 가능

equal(formatDate(prop("날짜"),"YYMMDD"),formatDate(now(),"YYMMDD")) ? "투데이":""

날짜=Now 가 참이면 "투데이", 거짓이면 "공백"을 표시

 


 

 만약 날짜와 투데이를 같이 넣고 싶다면

 

formatDate(prop("Date"), "YY/MM/DD/ddd") + if(equal(formatDate(now(), "YY/MM/DD/ddd"), formatDate(prop("Date"), "YY/MM/DD/ddd")), "   🥞", "")

 

그냥 날짜 수식 + 투데이 수식을 같이 넣어주면 됩니다.

핫케이크 앞에 공간 좀 줘야 보기 편해요.

 

수식 안 먹으면 "Date"를 "날짜"로 바꿨는지 확인하세요.

마우스로 Date 부분 더블클릭하면 Date만 선택되니까 수정하기 편해요.

 

<날짜+today 수식>

한글 formatDate(prop("날짜"), "YY/MM/DD/ddd") + if(equal(formatDate(now(), "YY/MM/DD/ddd"), formatDate(prop("날짜"), "YY/MM/DD/ddd")), "   🥞", "")
영어 formatDate(prop("Date"), "YY/MM/DD/ddd") + if(equal(formatDate(now(), "YY/MM/DD/ddd"), formatDate(prop("Date"), "YY/MM/DD/ddd")), "   🥞", "")

 

 

 


 

 

//  최종) 날짜+요일+시간+투데이 표시하기  //

 

일정에 시간도 넣으시는 분들을 위한 코너

시간까지 알뜰하게 모아주자구요.

 

Date 속성을 날짜 전체 보기로 하면 시간을 추가했을 때 오전, 오후가 표시되는데

이를 이용해서 if문을 만들면 됩니다.

 

format 함수를 이용해서 Date(날짜)를 텍스트로 전환시킨 후

Date에 (오전, 오후, am, pm) 문자가 포함될 경우에는 "날짜 + 시간 + today"가 표시,

없으면 "날짜 + today" 표시

 

if
(contains(format(prop("Date")), "오전"), formatDate(prop("Date"), "DD/dd hh:mm",
if
(contains(format(prop("Date")), "오후"), formatDate(prop("Date"), "DD/dd hh:mm",
if
(contains(format(prop("Date")), "AM"), formatDate(prop("Date"), "DD/dd hh:mm",
if
(contains(format(prop("Date")), "PM"), formatDate(prop("Date"), "DD/dd hh:mm",
formatDate(prop("Date"), "DD/ddd")))))

 

뜯어보면 이런 식으로 문자가 4개 이므로 if도 4개가 들어갑니다.

 

<날짜+요일+시간+today 수식>

한글 if(contains(format(prop("날짜")), "오전"), formatDate(prop("날짜"), "DD(ddd) hh:mm"), if(contains(format(prop("날짜")), "오후"), formatDate(prop("날짜"), "DD(ddd) hh:mm"), if(contains(format(prop("날짜")), "AM"), formatDate(prop("날짜"), "DD(ddd) hh:mm"), if(contains(format(prop("날짜")), "PM"), formatDate(prop("날짜"), "DD(ddd) hh:mm"), formatDate(prop("날짜"), "DD/ddd"))))) + if(equal(formatDate(now(), "YY/MM/DD/ddd"), formatDate(prop("Date"), "YY/MM/DD/ddd")), " 🍀", "")
영어 if(contains(format(prop("Date")), "오전"), formatDate(prop("Date"), "DD(ddd) hh:mm"), if(contains(format(prop("Date")), "오후"), formatDate(prop("Date"), "DD(ddd) hh:mm"), if(contains(format(prop("Date")), "AM"), formatDate(prop("Date"), "DD(ddd) hh:mm"), if(contains(format(prop("Date")), "PM"), formatDate(prop("Date"), "DD/(ddd) hh:mm"), formatDate(prop("Date"), "DD(ddd)"))))) + if(equal(formatDate(now(), "YY/MM/DD/ddd"), formatDate(prop("Date"), "YY/MM/DD/ddd")), " 🍀", "")

 

월도 표시하고 싶으시면 수식에 있는 모든 [ DD(ddd) ] 와 [ DD(ddd) hh:mm ] 앞에 MM/을 붙여주시면 되겠죠?

(prop("Date"), "MM/DD/ddd") 이런 식으로

 

 

수식 적용 전
수식 적용 후

 

칸 차지도 덜 하고 확실히 보기 좋아요 ㅎㅎ

 

 


 

 

+) 남은 일정까지 일수(디데이) 표시하기

 

 

dateBetween(prop("Date"), now(), "days")

 

이 수식만으로 뜨기는 하지만,

2일 전이 -2로 떠서 보기에 좀.. 안 좋아요.

 

 

if(contains(format(dateBetween(prop("Date"), now(), "days")), "-"), format(abs(dateBetween(prop("Date"), now(), "days"))) + "일 전", format(dateBetween(prop("Date"), now(), "days")) + "일 후")

 

if 함수를 써서 오늘은 today가 뜨고 n일 전은 "n일 전", n일 후는 "n일 후"가 뜨도록 해줄게요.

출력값에 "-"가 붙어있으면 "일 전"을 붙여주고, 붙어있지 않으면 "일 후"가 뜨도록 if문을 만들어 줬습니다.

 

좌) n일 전    D-day    n일 후              우) D+n     D-day  D-n

 

 

아래 수식을 적용하시면 이렇게 뜹니다.😊

 

<디데이 수식>

영어
(23/07/17 수정)
if(contains(format(dateBetween(prop("Date"), now(), "days")), "-"), "D+" + format(abs(dateBetween(prop("Date"), now(), "days"))), if(equal(formatDate(prop("Date"), "YYMMDD"), formatDate(now(), "YYMMDD")), "D-day", "D-" + format(abs(dateBetween(prop("Date"), now(), "days")) + 1)))

 

 

 

 

반응형

댓글