1

我的数据库中有一个日期字段。日期格式如下。

June 17, 2013

我使用格式为

date("F j, Y");

所以我的问题是有没有一种方法可以使用 php 以 RFC-822 格式显示这个日期?还是我需要从现在开始以 RFC-822 格式保存日期?提前致谢。

4

10 回答 10

5

两者都不。

从现在开始,您必须开始使用由 database 提供的格式
您必须了解存储格式和显示格式之间的区别。是不同的事情。在 mysql 中存储数据时,必须遵循 mysql 规则。因此,June 17, 2013您不必存储2013-06-17.

然后在输出转换为所需的任何格式 - 不限于单一格式,而是目的地要求的任何格式。

于 2013-06-17T06:58:16.753 回答
4

使用以下语法,您可以以 RFC822 格式显示当前时间。

$date = new DateTime('2000-01-01');
echo $date->format(DateTime::RFC822);
于 2013-06-17T06:53:42.303 回答
3

没有其他答案对我有用,所以这就是有效的……在 PHP 中取一个日期并在 RFC822 中输出:

date("D, d M Y G:i:s T", strtotime($date));

希望对其他人有所帮助。

于 2017-04-25T15:16:16.853 回答
2

正如所指出的那样,您最好的选择是将您存储日期的方式更改为字符串以外的其他内容。 date("Y-m-d", strtotime($date))可以帮助您完成这项工作。

但是为了解决即时需求,您可以利用 strtotime、date 和 DATE_RFC822 常量来获得您正在寻找的内容。

echo date(DATE_RFC822, strtotime($value));

请参阅php 日期文档中的第一个示例

于 2013-06-17T06:55:53.377 回答
1

正如@ashleedawg 和其他人在一些评论中提到的最简单的解决方案:

date("D, d M Y H:i:s O", strtotime($date));

注意“H”和“O”;)
谢谢!

于 2020-11-24T10:59:13.463 回答
0

date_format(date(你的数据库字段), '%D, %j %M %t')

以及您想要什么类型的格式只需查看 Mysql的链接日期和时间格式

于 2013-06-17T07:33:13.590 回答
0

您可以将其保存为数据库中的时间戳并显示为 RFC822 格式

date(DATE_RFC822, time());
于 2016-12-23T18:51:54.143 回答
0

最后不要使用 T 而是使用“O”,它对我有用

于 2021-08-11T14:45:23.487 回答
0

如果您想在 PHP 中为RFC-822格式化某些内容,那么只需执行此操作...

date('r', strtotime($date))

'r' » RFC 2822 格式化日期示例:Thu, 21 Dec 2000 16:01:07 +0200

来源:PHP.net:DateFormat

但是,正如其他所说,您不想将其存储在数据库中! 但是,您需要将其r用于其他内容,例如 XML-RSS 日期时间格式...

RSS 中的所有日期时间都符合 RFC 822 的日期和时间规范...(来源:RSS 2.0 规范。)

于 2021-12-19T02:07:18.310 回答
0

这是唯一对我有用的解决方案:

date("D, d M Y H:i:s T", strtotime($date));

上面其他不起作用的示例包括使用 DATE_RFC822 格式说明符,它输出 2 位数的年份,而不是 4 位数。然后另一个使用 G:i:s 作为时间的建议不起作用,因为 G 没有指定前导零,所以你会得到 2:00:00 而不是 02:00:00。

于 2020-07-06T02:01:11.493 回答