日期转换为RFC-822

时间:2013-06-17 06:50:20

标签: php date

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

June 17, 2013

我使用格式为

date("F j, Y");

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

9 个答案:

答案 0 :(得分:3)

都不是。

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

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

答案 1 :(得分:2)

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

$date = new DateTime('2000-01-01');
echo $date->format(DateTime::RFC822);

答案 2 :(得分:2)

正如所指出的,最好的办法是改变将日期存储到字符串之外的方式。 date("Y-m-d", strtotime($date))可以帮助您完成这项工作。

但是为了解决眼前的需求,你可以利用strtotime,date和DATE_RFC822常量来获得你想要的东西。

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

请参阅php date documentation

上的第一个示例

答案 3 :(得分:1)

其他答案都没有对我有用,所以这就是有效的...在PHP中约会并在RFC822中输出:

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

希望能帮助他人。

答案 4 :(得分:0)

date_format(日期(您的数据库字段),'%D,%j%M%t')

你想要什么类型的格式只看到链接 date and time format for Mysql

答案 5 :(得分:0)

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

dmg_file.dmg

答案 6 :(得分: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。

答案 7 :(得分:0)

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

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

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

答案 8 :(得分:0)

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