【问题标题】:Is there a universal date format for PHP?PHP 有通用的日期格式吗?
【发布时间】:2011-02-18 10:53:58
【问题描述】:

好的,有没有一种方法可以设置一个可以在以后轻松修改为不同格式的日期。示例:一个日期在mysql数据库中,并且是通用格式;它被放入文档中,有没有办法即时更改日期格式?

【问题讨论】:

    标签: php date universal


    【解决方案1】:

    是的,它被称为unix timestamp,表示自纪元(1969 年 12 月 31 日)以来的秒数。

    使用时间戳,您可以使用 date() 函数以您希望的任何格式输出日期。

    【讨论】:

      【解决方案2】:

      【讨论】:

        【解决方案3】:

        简短的回答:不是。


        长答案:

        有许多不同的标准(RFC850, RFC822, ISO8601,仅举几例)以各种字符串格式表示日期。还有 UNIX 时间戳。要在 PHP 中进行任何类型的日期转换,您通常必须通过 UNIX 时间戳。 PHP 可以使用strtotime 将几乎任何标准化的日期文本表示转换为 UNIX 时间戳。

        您的 PHP 应用程序中的日期可以处于以下两种状态之一:

        • 一种字符串表示形式,或多或少具有可读性,可在不同环境(数据库/PHP、XML/PHP 等)之间轻松互换,但不可操作(加/减/比较)
        • 一个 UNIX 时间戳或DateTime object(如果您使用 PHP >= 5.2 并选择使用它)可以被操纵但对人类毫无价值

        您通常在输入、操作和输出期间将日期从一种状态转换为另一种状态。
        要将日期从一种文本格式转换为另一种格式,您通常使用strtotime 将其读入,然后将生成的时间戳重新格式化为您需要的格式。

        date(DATE_RFC822, strtotime('2010-01-12 03:52:12'));
        
        date('l jS \of F Y h:i:s A', strtotime('2010-01-12 03:52:12'));
        
        $timestampA = strtotime('2010-01-12 03:52:12');
        $timestampB = strtotime('2011-02-05 02:00:31');
        if ($timestampA < $timestampB) {
            ...
        }
        

        可以说 UNIX 时间戳是通用格式,但实际上不存在通用日期格式。您不应将 UNIX 时间戳存储在数据库中,而应使用 MySQL 的原生 DATETIME(或 DATETIME)字段。当从数据库中检索这些 DATETIME 字段时,您将获得 MySQL 首选的文本表示形式 Y-m-d H:i:s 格式。如上所述将其转换为您想要的“人类可读”格式。

        【讨论】:

          猜你喜欢
          • 2013-01-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-02-24
          • 1970-01-01
          • 1970-01-01
          • 2012-07-24
          • 2023-03-24
          相关资源
          最近更新 更多