【问题标题】:mysql timestamp convertionmysql时间戳转换
【发布时间】:2010-08-04 12:55:47
【问题描述】:

从 mysql 时间戳 (YYYY-MM-DD HH:MM:SS) 转换为我自己选择的格式(例如“2010 年 8 月 5 日”)的正确方法是什么?我怎样才能使 mysql 时间戳 php date() 兼容?

【问题讨论】:

    标签: php mysql database date time


    【解决方案1】:

    有两种方法...

    首先,您可以在 php 中使用 strtotime()...

    $time = strtotime('2010-05-05 05:05:05');
    echo date('F j, Y', $time);
    

    或者,您可以在 MySQL 中使用 UNIX_TIMESTAMP() 将其转换为 unix 时间:

    SELECT UNIX_TIMESTAMP(`your timestamp column`) FROM blahblah....
    

    然后你需要在获取它之后在 php 中使用date() 对其进行格式化。

    或者,您可以在 MySQL 中使用 DATE_FORMAT() 完成所有操作:

    SELECT DATE_FORMAT(`your timestamp column`, '%M %e, %Y') FROM ...
    

    【讨论】:

    • 用 MySQL 制作它是个坏主意。您将受到数据库选择的任何时区的支配,这可能是也可能不是 PHP 正在使用的时区(更不用说它更有可能没有设置最新的时区数据)。
    • @Artefacto 一点也不坏。事实上,这是一个非常好的主意。事实上,我只信任 MySQL 的日期(因为复制和负载平衡)。如果你在 PHP 和 MySQL 之间混合使用可能会让人头疼,但只要你选择一个并坚持使用它或正确测试你就可以了......
    • 什么?你信任 MySQL 的日期 因为 复制和负载平衡?复制和负载平衡必须做什么,比如解析/格式化日期?混合使用 PHP 和 MySQL 是灾难的根源,单独信任 MySQL 并没有好多少(它是否正确处理时区、夏令时和规则更改,并且可以使其规则保持最新throughout the year?)。跨度>
    • 我们有一个地理复制的主-主设置(美国 GMT -5 有 1 台服务器,英国 GMT + 0 有 1 台服务器)。 MySQL 为我们管理服务器之间的时区设置差异。因此,如果我们在此处使用NOW(),则与在此处使用NOW() 相同,而无需我们提供任何输入(MySQL 将时区偏移信息存储在二进制日志中)。没有它,我们需要在 PHP 中手动更正每个日期到/从时区和 UTC(对于一个日期来说很容易,对于有许多开发人员的整个应用程序来说很容易忘记)......我们已经这样做了 3 年没有任何问题。所以是的,我确实相信它......
    • 时区转换无异于虚无,地狱最好存储时间戳,至少您不会被认为它实际上没有价值而被欺骗。我希望您不要在数据库中存储任何未来的日期(例如,您正在构建日历应用程序)。如果您是,请帮自己一个忙,并阅读我链接到的页面。我还收集到您的应用程序仅显示服务器时区中的时间,因为否则您无论如何都必须进行这些时区转换。
    【解决方案2】:

    您可以让 MySQL 将其作为 Epoch 时间戳返回,php 的日期函数可以处理或使用以下函数:

    $epoch = strtotime('YYYY-MM-DD HH:MM:SS');

    php Manual: strtotime

    【讨论】:

      【解决方案3】:

      第三种选择:使用 MySQL 的 DATE_FORMAT() 函数(虽然我更喜欢 ircmaxell 的方式)

      【讨论】:

        【解决方案4】:

        datestrtotime。有关其他时区的操作,请参阅 date_default_timezone_setDateTime 类。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-07-07
          • 2013-08-15
          • 1970-01-01
          • 2011-12-18
          • 2011-01-05
          • 2010-11-07
          • 2015-11-22
          • 2023-03-24
          相关资源
          最近更新 更多