生活中我们或多或少有些值得纪念的日子,升学升迁,婚庆嫁娶,除了看时间,还可以存档我们个人的一些照片,便于我们回忆观看。

先看看效果?

实现简单的倒计时

第一步:新建 Database

新建一个 Notion Database,接下来对属性进行一个简单修改。

第二步:创建截止日期

开始创建我们的倒数日,比如我想知道 2019 年结束还剩多少天。

这里我将数值调到 2019.12.31

第三步:计算倒计时

计算倒计时,其实就是一个简单的减法,用截止时间减去现在时间,就能得出还剩余多少天。

简单归简单,在 Notion 中我们应该怎么实现呢?细心的小伙伴如果注意到第一步的时候其实我改了两个属性,一个是时间,另外一个就是辅助我们计算倒计时的 Notion formula。(这里就不对 Notion formula 做过多介绍,未来会单独出一篇介绍。)

Notion formula 中提供一个计算两个时间差的函数 dateBetween(),在 Notion formula 中我们找到这个函数,看看介绍。

我们拎出使用方法

dateBetween(date, date, text)
----
dateBetween(date, date2, "years")
dateBetween(date, date2, "quarters")
dateBetween(date, date2, "months")
dateBetween(date, date2, "weeks")
dateBetween(date, date2, "days")
dateBetween(date, date2, "hours")
dateBetween(date, date2, "minutes")
dateBetween(date, date2, "seconds")
dateBetween(date, date2, "milliseconds")

接下来我们对方法做一下简单的改造与介绍

dateBetween(date, date2, text)

dateBetween() 函数中,date – date2 就是分别对应刚刚新建的时间减去现在的时间,text 就是展示这个时间的形式,可以选择年、季度、月、日、小时、分钟、秒、毫秒进行展示。

对了,Notion 也提供了当天日期的函数 now(),通过 now() 函数,我们就能很快得到当前日期。

有了截止时间与现在的时间,万事俱备,让我们来尝试一下使用最终时间减去现在的时间。代码如下:

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

第四步:美化展示

这样我们就得到一个简单的倒数日,似乎并不美观,那我们尝试加一些 emoji 显的更有人情味些。代码如下:

还剩 + dateBetween(prop("Time"), now(), "days") + 天

诶,竟然不对?Notion formula 报错了。

哈哈,不逗大家了,这里需要对刚刚数值进行一个转格式,format()函数就是帮助我们转成与 “💊 还剩 ” 相同的格式。为什么要转?

不转化前,dateBetween(prop("Time"), now(), "days") 就是实打实的钢铁,"💊 还剩 "是融化的铁,我们用 format()函数加热实打实的铁,这样才能融合更彻底些。(这是我编的,事实上是程序规定。)

更改后的代码如下:

"💊 还剩 " + format(dateBetween(prop("Time"), now(), "days")) + " 天"

那么,我们的倒数日就算制作完成了!

如何计算并展示纪念日

其实计算纪念日与倒数日的公式形式一样,只是对 prop("Time")now()做了一下调换。代码如下:

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

我们把现有代码粘贴到之前写好的公式,发现之前的倒数日变成负数了,有点头疼。

其实 Notion formula 并不支持每一行一个公式。那么为了计算日子,岂不是要建两个 Database?

那么,有什么办法可以支持两个一起用呢?

Notion formula if()

还好 Notion formula 是支持 if() 判断的,具体使用方法如图:

把实例拿出来遛一遛:

true ? 1 : -1 == 1
if(false, "yes", "no") == "no"

上述代码写的还是有歧义,我再转换一下

1 < 2 ? "yes" : "no" == "yes"
if(1 > 2, "yes", "no") == "no"

1 从基础数学来讲,不会大于 2 ,所以得出判断就是 "no",如果是小于 2 ,那么就是"yes"

使用 Notion if() 来判断展示纪念日与倒数日

其实时间可以拿来进行判断,我做一下解释

  • 我们设置的时间 < 现在的时间,那么就是纪念日;
  • 我们设置的时间 > 现在的时间,那么就是倒数日;
  • 我们设置的时间 = 现在的时间,那么就是现在时间。

那么代码可以这么写:

if(prop("Time") > now(), "倒数日" , "纪念日")

再将之前的写好的代码分别粘贴到对应的倒数日与纪念日,这里我对纪念日进行了美化,具体与倒数日执行步骤一样。代码如下:

# 倒数日
"💊 还剩 " + format(dateBetween(prop("Time"), now(), "days")) + " 天"

# 纪念日
"😘 已过 " + format(dateBetween(now(), prop("Time"), "days")) + " 天"

整体代码如下:

if(prop("Time") > now(), "💊 还剩 " + format(dateBetween(prop("Time"), now(), "days")) + " 天", "😘 已过 " + format(dateBetween(now(), prop("Time"), "days")) + " 天")

如果你是时间命名不是 Time,请将代码中所有 Time 进行一次替换,替换成你命名的名字。

我们没有制作我们设置的时间 = 现在的时间,那么就是现在时间这段,这个我有时间再写。(已经很晚了。

再补充一下,Notion 制作纪念日,倒数日的好处其实在这里,不仅仅记录时间,还记录图片,视频,文档等等等…

结语

Notion 的能力远不止如此,还有更丰富的场景等着我们挖掘,下一篇我会回归到基础,教大家如何更快上手 Notion。

如果你想本篇内容能够出视频讲解,那么请点赞,到达 30 个赞我就制作视频讲解。

如果你有 Notion 相关问题,欢迎添加我的微信 Linmiv 交流。

感谢阅读,请评分鼓励一下我!

感谢评价,欢迎关注我的 Twitter 哦。