你们中的大多数人可能会发现这个重复(几乎)的问题,但我找不到解决方案,因为我想要在所有那些讨论中找到解决方案。
我在mysql数据库中有一个类型为= DATETIME的列,它将时间保存为2013-08-21 20:26:12。
现在,我可以在PHP页面上回复它,即2013-08-21 20:26:12,但我希望以下列格式回应它:
如果可以在从数据库中获取时间并应用某些PHP函数后执行此操作,或者我们可以在从数据库中获取时执行此操作,请指导我? 怎么样?
感谢
**更新:或者如果我能够使用date()生成时间;在PHP中将它存储在mysql数据库中作为TIME,这样我们就可以对它进行时间查询,比如搜索等
答案 0 :(得分:11)
使用strtotime()
将时间字符串转换为时间戳,然后使用date()
函数将其转换为所需格式。
$str = '2013-08-21 20:26:12';
echo date('d M ', strtotime($str));
echo date('d M Y', strtotime($str));
echo date('g:i A, l - d M Y', strtotime($str));
输出:
21 Aug
21 Aug 2013
8:00 PM, Wednesday - 21 Aug 2013
这应该让你开始。有关更多选项,请参阅date()
功能文档。
<强> Demo! 强>
答案 1 :(得分:2)
如果可以在从数据库中获取时间并应用某些PHP函数后执行此操作,或者我们可以在从数据库中获取时执行此操作,请指导我?怎么样?
在MySQL中使用DATE_FORMAT()
:
SELECT DATE_FORMAT(my_column, '%D %b' ) FROM my_table;
SELECT DATE_FORMAT(my_column, '%D %M, %Y' ) FROM my_table;
SELECT DATE_FORMAT(my_column, '%l:%i %p, %W - %D %M, %Y') FROM my_table;
在PHP中使用date()
:
date('jS M', $ts);
date('jS F, Y', $ts);
date('g:i A, l - jS F, Y', $ts);
(使用strtotime()
或UNIX_TIMESTAMP()
等内容从字段值创建$ts
的位置。
答案 2 :(得分:1)
21st Aug
21st August, 2013
8:26 PM, Wednesday - 21st August, 2013
$date="2013-08-21 20:26:12";
date("jS M",strtotime($date));
date("jS F, Y",strtotime($date));
date("h:i A, l - jS F, Y",strtotime($date));
答案 3 :(得分:0)
$Date = strtotime($FetchedDate);
$NewDate = date($format, $Date);
为了能够创建自己的格式,请查看: http://php.net/manual/en/function.date.php
答案 4 :(得分:0)
DateTime课程和Date formatting options会为您提供帮助: -
$dateStr = '2013-08-21 20:26:12';
$date = new \DateTime($dateStr);
echo $date->format('dS M');
echo $date->format('dS F, Y');
echo $date->format('h:i A l - dS F, Y');
输出: -
8月21日 2013年8月21日
2013年8月21日星期三08:26