我的数据库中有一个日期字段。日期格式如下。
June 17, 2013
我使用格式为
date("F j, Y");
所以我的问题是有没有一种方法可以使用 php 以 RFC-822 格式显示这个日期?还是我需要从现在开始以 RFC-822 格式保存日期?提前致谢。
两者都不。
从现在开始,您必须开始使用由 database 提供的格式。
您必须了解存储格式和显示格式之间的区别。是不同的事情。在 mysql 中存储数据时,必须遵循 mysql 规则。因此,June 17, 2013
您不必存储2013-06-17
.
然后在输出转换为所需的任何格式 - 不限于单一格式,而是目的地要求的任何格式。
使用以下语法,您可以以 RFC822 格式显示当前时间。
$date = new DateTime('2000-01-01');
echo $date->format(DateTime::RFC822);
没有其他答案对我有用,所以这就是有效的……在 PHP 中取一个日期并在 RFC822 中输出:
date("D, d M Y G:i:s T", strtotime($date));
希望对其他人有所帮助。
正如所指出的那样,您最好的选择是将您存储日期的方式更改为字符串以外的其他内容。 date("Y-m-d", strtotime($date))
可以帮助您完成这项工作。
但是为了解决即时需求,您可以利用 strtotime、date 和 DATE_RFC822 常量来获得您正在寻找的内容。
echo date(DATE_RFC822, strtotime($value));
正如@ashleedawg 和其他人在一些评论中提到的最简单的解决方案:
date("D, d M Y H:i:s O", strtotime($date));
注意“H”和“O”;)
谢谢!
date_format(date(你的数据库字段), '%D, %j %M %t')
以及您想要什么类型的格式只需查看 Mysql的链接日期和时间格式
您可以将其保存为数据库中的时间戳并显示为 RFC822 格式
date(DATE_RFC822, time());
最后不要使用 T 而是使用“O”,它对我有用
如果您想在 PHP 中为RFC-822格式化某些内容,那么只需执行此操作...
date('r', strtotime($date))
'r'
» RFC 2822 格式化日期示例:Thu, 21 Dec 2000 16:01:07 +0200
但是,正如其他所说,您不想将其存储在数据库中! 但是,您需要将其r
用于其他内容,例如 XML-RSS 日期时间格式...
RSS 中的所有日期时间都符合 RFC 822 的日期和时间规范...(来源:RSS 2.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。