如果你和我一样,每天的上下班通勤时间较长且存在变数,那么是否会有记录下这段时间的想法?

之前,我一直使用 Moves 追踪自己的地理位置信息,这样也能较为粗略地记录下通勤时间。但可惜的是,自 iOS 11 发布之后 Moves 就不再更新,目前已经无法正常使用。

后来,我尝试寻找能满足通勤时间记录的应用,不过大多都是以定时器的形式存在。如果使用定时器记时,每次都需要执行较为复杂的步骤:打开定时器应用 → 开始计时 → 结束及时 → 关闭定时器应用。更关键的是,当你想保存下每次持续的时间时,你还需要另想办法。

最后,我将目光放在了 Workflow 上,并通过与 Airtable 配合实现了记录上下班通勤时间的想法。

实现思路

首先,Workflow 中是没有与记录时间相关的 Action,只有能获取到当前时间的 Date 动作。

Workflow 中与时间相关的动作
Workflow 中与时间相关的动作

所以,本文的思路是通过 Workflow 获取到每一次开始和结束计时的时间戳,再将其更新到 Airtable 中,并使用 Airtable 中提供的 Formula 公式计算时间差。该时间间隔即为上下班通勤时间,同时将时间保存在 Airtable 中并返回到手机上。整个过程如下图所示。

Workflow 记录通勤时间流程
Workflow 记录通勤时间流程

如上图所示,每次运行该 Workflow 时:

  1. 先选择上班、下班状态;
  2. 点击开始计时,Workflow 会将当前时间戳上传到 Airtable 中;
  3. 到达目的地后,点击结束计时,Workflow 会将当前时间戳上传到 Airtable 中;
  4. Airtable 会计算时间差,并返回如上方右图所示的通勤时间结果。

配置和安装

该方案对应的 Workflow 制作非常简单,但需要你对使用 HTTP 请求方法比较熟悉,也就是 Workflow 中 Get Contents of URL 动作。而这里面临的主要困难是如何在 Airtable 设置正确的数据表结构。

回顾上一小节提到的实现逻辑,你可能觉得只需要新建一张表格存储 Workflow 上传的数据即可,其实不然。这里无法利用单张数据表实现的原因在于,当上传数据到 Airtable 中时,每一条数据记录都会新建一行,于是就会出现数据交错的情况,也就无法计算时间差。

无法计算时间间隔
无法计算时间间隔

于是,这里选择新建两个表,分别是 Update 数据表和 Time 数据表。其中,Update 表用于处理 Workflow 上传的时间及计算时间间隔,Time 表则用于记录每次通勤的时间。其中,Update 表如下图所示:

Update 表示例结构
Update 表示例结构

当 Workflow 上传时间戳时,选择使用 Airtable 更新数据记录的 XPATH 请求方法,而不是新建数据记录的 POST 请求方法。于是,这里的 Update 表格中始终只有一行记录。

另一张 Time 表如下所示:

Time 表示例结构
Time 表示例结构

其中:

  • Num:Airtable 中的 Auto number 属性,也就是自动计数器。
  • Created:Airtable 中的 Created time 属性,当某一条数据记录产生时,该属性列会自动记录当前时间。该时间也就是上班或下班到达目的地时间。
  • Action:通过 Workflow 上传,记录运行 Workflow 时选择的上/下班状态。
  • Time:通过 Workflow 上传,记录 Workflow 前一步从 Update 表中获取到的时间间隔。

完成以上的步骤,一切就大功告成了。如果你想直接使用我制作的 Workflow 和 Airtable Base,需要按下面的顺序配置:

  1. 通过 此链接 访问与文中结构一致的 Airtable Base,并点击右上角的 Copy base 复制到自己的 Airtable 中。
  2. 通过 此链接 安装对应的 Workflow,安装时根据提示问题修改自己的 Airtable API 信息和对应的请求 URL

如果你对 Airtable API 不太熟悉,可以通过界面右上角的 HELP 选项查看官方给出的示例用法。

最后,我不愿意夸大记录通勤时间的意义,因为每个人的想法和需求是不一样的。不过,就我个人而言,探索「充分利用工具」的过程十分有趣。

还没有下载 Workflow?点击 这里 下载。

> 想知道关于 Workflow 的更多用法,请访问少数派的 Workflow 专题 🔥

> 下载少数派 iOS 客户端、关注 少数派公众号,找到数字时代更好的生活方式 🏃

73
20