【问题标题】:Storing time only in Firestore仅在 Firestore 中存储时间
【发布时间】:2019-06-10 21:11:04
【问题描述】:

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

company [document]
  hours [map]
    - mon [map]
      - open: 08:00 [timestamp...?]
      - close: 18:00
    - tue [map]
      - open: 08:00
      - close: 18:00

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

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

谁能指点我正确的方向?

【问题讨论】:

    标签: flutter google-cloud-firestore


    【解决方案1】:

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

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

    【讨论】:

    • 这太好了,谢谢。使用这种方法,您将如何解决只有 60 分钟的小时数的问题?如果一家公司在 14:00 (1400) 关闭,并且当前时间是 13:50 (1350),那么 ( closingTime - currentTime ) 计算将返回 50 分钟,而不是 10 分钟。
    • 这听起来像是一个不同的问题。请发布一个新的来描述你现在想要完成的事情。
    猜你喜欢
    • 2021-09-25
    • 2019-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-31
    • 2021-04-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多