Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何比较不同的日期格式?_Php_Mysql_Sql_Regex_Datetime - Fatal编程技术网

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

Php 如何比较不同的日期格式?,php,mysql,sql,regex,datetime,Php,Mysql,Sql,Regex,Datetime,我有四种不同的日期格式,我将存储在数据库中,然后显示最新的格式 四种不同的格式: $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'; 它们将存储在MYSQL数据库中 我该怎么处理它们呢 SQL或MYSQL日期类型可以完成这项工作吗 我应该使用strotime()转换它们吗 我应

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

四种不同的格式:

$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';
它们将存储在MYSQL数据库中

我该怎么处理它们呢

SQL或MYSQL日期类型可以完成这项工作吗

我应该使用
strotime()
转换它们吗


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

MySQL有三种适合日期/时间值的数据类型。这些都在本文中得到了很好的解释

您有三种类型的值:

  • 单独约会
  • 有时间的日期,但没有时区
  • 带有时间和时区的日期
但要问的基本问题是:

  • 你只需要日期还是时间也是必要的
  • 你需要时区吗
如果您只需要日期,那么
date
就可以了。否则,您需要
datetime
timetamp
。这取决于你想如何对待时区

如果您确实需要存储带有该值的时区,那么我建议您仔细考虑这是否真的必要。通常,
时间戳
就足够了,因为它以UTC格式存储值,然后可以将这些值转换为任何原始时间戳。您可以将原始时区存储在备选列中

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

  • YYYY-MM-DD
  • YYYY-MM-DD HH:MI:SS
  • YYYY-MM-DD HH:MI:SS+TZ
在MySQL中,前两个很容易转换为适当的类型。对于第三种情况,您可以提取时区并将其添加为偏移量(需要做一些工作)


然而,我怀疑这种做法是否必要。一个
datetime
可能就足够了。

SQL或MYSQL日期类型可以完成这项工作吗?也许你应该在问问题之前试一下。请发布您尝试过的代码,并解释哪个部分不起作用。在存储到表中时进行转换。@RickJames,您是指在存储之前还是之后?存储一个
DATETIME
TIMESTAMP
--“2018-06-18 06:52:20”;没有其他表单。我想存储它们有两个原因:1-显示每个帖子创建日期。2-从DB获取最新添加的帖子。时区不重要,我可以从日期中提取。@Ashley。然后您应该使用
时间戳
日期时间
。如果值都来自同一时区,例如来自服务器时区,则可以使用
datetime