我的数据库上有一个日期字段。日期格式如下。
June 17, 2013
我使用格式为
date("F j, Y");
所以我的问题是有一种方法可以使用php以RFC-822格式显示这个日期吗?或者我是否需要从现在开始以RFC-822格式保存日期?提前谢谢。
答案 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));
上的第一个示例
答案 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”,它对我有用