如何比较不同的日期格式?

时间:2018-07-01 09:58:58

标签: php mysql sql regex datetime

我有四种不同的日期格式,将存储在数据库中,然后显示最新的日期格式。

四种不同的格式:

my_Model

它们将存储在MYSQL数据库中。

我该怎么办?

SQL或MYSQL日期类型可以工作吗?

我应该使用$a = '27. júní 2018 04:53'; $b = 'Friday, 09 March 2018'; $c = 'Fri, 29 Jun 2018 11:00:00 GMT'; $d = 'Mon, 18 Jun 2018 06:52:20 +0000'; 转换它们吗?

我应该从特定数据中提取一些数据以使它们匹配吗?

1 个答案:

答案 0 :(得分:1)

MySQL具有适用于日期/时间值的三种数据类型。这些在documentation中有很好的解释。

您有三种类型的值:

  • 单独约会。
  • 有时间但没有时区的日期。
  • 带有时间和时区的日期。

但是要问的基本问题:

  • 您只需要日期还是时间?
  • 您需要时区吗?

如果您只需要日期,那么date就可以了。否则,您需要datetimetimetamp。这取决于您要如何对待时区。

如果您实际上需要将时区与该值一起存储,那么我建议您认真考虑一下这是否确实必要。通常,timestamp就足够了,因为它将值存储在UTC中,然后可以将其转换为任何原始时间戳。您可以将原始时区存储在备用列中。

如果确实需要毫不妥协地处理所有三种类型,则可能需要使用字符串。在这种情况下,您应该使用格式正确的字符串:

  • YYYY-MM-DD
  • YYYY-MM-DD HH:MI:SS
  • YYYY-MM-DD HH:MI:SS + TZ

在MySQL中,前两个很容易转换为适当的类型。对于第三个,您可以提取时区并将其添加为偏移量(需要一些工作)。

但是,我怀疑这种方法是否必要。 datetime可能就足够了。