是否有PHP的通用日期格式?

时间:2011-02-18 02:21:32

标签: php date universal

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

3 个答案:

答案 0 :(得分:2)

答案 1 :(得分:2)

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

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

答案 2 :(得分:2)

简短回答:不是。


答案很长:

有许多不同的标准(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格式获取它们。将上面概述的内容转换为您想要的“人类可读”格式。