我将日期存储在mysql表中,它们被设置为在每一行中存储为CURRENT TIMESTAMP并存储如下:
2010-05-29 01:17:35
但我想要做的是以某种方式使用PHP来分离所有内容并创建更像的日期:
2010年5月29日上午1:17
任何人都可以至少指引我走正确的道路。非常感谢任何帮助!
答案 0 :(得分:59)
echo date('M j Y g:i A', strtotime('2010-05-29 01:17:35'));
答案 1 :(得分:23)
您有两种解决方案:
strtotime()
将日期解析为时间戳,并使用date()
将其重新格式化为字符串DateTime
类
在PHP代码中,这意味着使用:
echo date('M j Y g:i A', strtotime('2010-05-29 01:17:35'));
或者:
$dt = new DateTime('2010-05-29 01:17:35');
echo $dt->format('M j Y g:i A');
strtotime
+ date
是您最常用的解决方案;但它不是最好的解决方案:有了这些,你将使用UNIX时间戳,这意味着有限的日期范围(从1970年到2038年,如果使用32位整数)。
另一方面,使用DateTime
课程,您可以使用的日期范围没有限制。
答案 2 :(得分:3)
如果您的表格中有DATETIME
字段,而您只想要日期字段,那么:
SELECT DATE_FORMAT(timestamp,'%M %D, %Y') FROM Mytable;
或:
SELECT DATE_FORMAT(timestamp,'%Y-%m-%d') FROM Mytable;
其中timestamp
是您的列名。