1

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

4

3 回答 3

2

使用时间戳?http://php.net/manual/en/function.time.php

于 2011-02-18T02:25:53.897 回答
2

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

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

于 2011-02-18T02:26:36.690 回答
2

简短的回答:不是。


长答案:

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

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

  • 一种或多或少可读且易于在不同环境(数据库/PHP、XML/PHP 等)之间互换但不可操作(加/减/比较)的字符串表示
  • 一个 UNIX 时间戳或DateTime对象(如果您使用 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格式获取它们。如上所述将其转换为您想要的“人类可读”格式。

于 2011-02-18T02:29:48.747 回答