如果你和我一样,每天的上下班通勤时间较长且存在变数,那么是否会有记录下这段时间的想法?
之前,我一直使用 Moves追踪自己的地理位置信息,这样也能较为粗略地记录下通勤时间。但可惜的是,自 iOS 11 发布之后 Moves 就不再更新,目前已经无法正常使用。
后来,我尝试寻找能满足通勤时间记录的应用,不过大多都是以定时器的形式存在。如果使用定时器记时,每次都需要执行较为复杂的步骤:打开定时器应用 → 开始计时 → 结束及时 → 关闭定时器应用。更关键的是,当你想保存下每次持续的时间时,你还需要另想办法。
最后,我将目光放在了 Workflow上,并通过与 Airtable配合实现了记录上下班通勤时间的想法。
实现思路
首先,Workflow 中是没有与记录时间相关的 Action,只有能获取到当前时间的 Date 动作。
所以,本文的思路是通过 Workflow 获取到每一次开始和结束计时的时间戳,再将其更新到 Airtable 中,并使用 Airtable 中提供的 Formula 公式计算时间差。该时间间隔即为上下班通勤时间,同时将时间保存在 Airtable 中并返回到手机上。整个过程如下图所示。
如上图所示,每次运行该 Workflow 时:
- 先选择上班、下班状态;
- 点击开始计时,Workflow 会将当前时间戳上传到 Airtable 中;
- 到达目的地后,点击结束计时,Workflow 会将当前时间戳上传到 Airtable 中;
- Airtable 会计算时间差,并返回如上方右图所示的通勤时间结果。
配置和安装
该方案对应的 Workflow 制作非常简单,但需要你对使用 HTTP 请求方法比较熟悉,也就是 Workflow 中 Get Contents of URL
动作。而这里面临的主要困难是如何在 Airtable 设置正确的数据表结构。
回顾上一小节提到的实现逻辑,你可能觉得只需要新建一张表格存储 Workflow 上传的数据即可,其实不然。这里无法利用单张数据表实现的原因在于,当上传数据到 Airtable 中时,每一条数据记录都会新建一行,于是就会出现数据交错的情况,也就无法计算时间差。
于是,这里选择新建两个表,分别是 Update 数据表和 Time 数据表。其中,Update 表用于处理 Workflow 上传的时间及计算时间间隔,Time 表则用于记录每次通勤的时间。其中,Update 表如下图所示:
当 Workflow 上传时间戳时,选择使用 Airtable 更新数据记录的 XPATH
请求方法,而不是新建数据记录的 POST
请求方法。于是,这里的 Update 表格中始终只有一行记录。
另一张 Time 表如下所示:
其中:
Num
:Airtable 中的 Auto number 属性,也就是自动计数器。Created
:Airtable 中的 Created time 属性,当某一条数据记录产生时,该属性列会自动记录当前时间。该时间也就是上班或下班到达目的地时间。Action
:通过 Workflow 上传,记录运行 Workflow 时选择的上/下班状态。Time
:通过 Workflow 上传,记录 Workflow 前一步从 Update 表中获取到的时间间隔。
完成以上的步骤,一切就大功告成了。如果你想直接使用我制作的 Workflow 和 Airtable Base,需要按下面的顺序配置:
- 通过 此链接访问与文中结构一致的 Airtable Base,并点击右上角的 Copy base 复制到自己的 Airtable 中。
- 通过 此链接安装对应的 Workflow,安装时根据提示问题修改自己的 Airtable API 信息和对应的请求
URL
。
如果你对 Airtable API
不太熟悉,可以通过界面右上角的 HELP 选项查看官方给出的示例用法。
最后,我不愿意夸大记录通勤时间的意义,因为每个人的想法和需求是不一样的。不过,就我个人而言,探索「充分利用工具」的过程十分有趣。
还没有下载 Workflow?点击 这里下载。
>想知道关于 Workflow 的更多用法,请访问少数派的 Workflow 专题🔥