仅在 Firestore 中存储时间

Mr *_*Jax 1 flutter google-cloud-firestore

有没有办法在 Firestore 中存储时间值(没有日期)?我正在尝试在 Flutter 应用程序(营业时间)中实现以下目标:

company [document]
  hours [map]
    - mon [map]
      - open: 08:00 [timestamp...?]
      - close: 18:00
    - tue [map]
      - open: 08:00
      - close: 18:00
Run Code Online (Sandbox Code Playgroud)

我想以可用于计算的格式存储它(即,公司今天关闭多长时间)。

我试过使用 TimeStamp 并为每一天 (01/01/2001) 设置一个通用日期,然后只使用 DateFormat('HH:ss') 检索时间,但问题是它然后返回一个字符串,它可以' 不用于计算。

有人可以指出我正确的方向吗?

Dou*_*son 6

Firestore 不提供原生的“一天中的时间”类型。时间戳应该用于特定的时间点,这在此处不适用。

表示一天中时间的常用方法是将小时和分钟表示为“mmss”格式的四位整数。因此,例如,下午 1:30 为 1330。或者,如果您需要秒粒度,只需将这些添加到末尾:133000。然后您可以按这些数字进行排序,以按时间和日期进行过滤。(您可能希望以“YYYYMMDD”格式存储日期。)

  • 这太棒了,谢谢。使用这种方法,您将如何解决只有 60 分钟的时间问题?如果公司于 14:00 (1400) 关门,当前时间为 13:50 (1350),则 ( **endingTime** - **currentTime** ) 计算将返回 50 分钟,而不是 10 分钟。 (2认同)