将MySQL时间戳转化为实际日期和时间?

问题描述 投票:0回答:3

i我的日期存储在MySQL表中,它们设置为将当前时间戳存储在每一行中,并存储如下:

2010-05-29 01:17:35

但是我要做的是以某种方式使用PHP来分开所有内容并创建一个更像:

-May 29 2010 1:17AM

至少可以将我带到我应该走的正确道路上。任何帮助都非常感谢!

php mysql date timestamp
3个回答
72
投票
echo date('M j Y g:i A', strtotime('2010-05-29 01:17:35'));

http://php.net/manual/en/function.date.php


27
投票
您有两个解决方案:


“ strtotime” +`date'是您看到最多使用的解决方案;但这不是最好的解决方案:有了这些解决方案,您将使用Unix时间戳,这意味着约会范围有限(1970年至2038年,如果使用32位整数) *。 另一方面,使用
$dt = new DateTime('2010-05-29 01:17:35');
echo $dt->format('M j Y g:i A');
类,您可以使用的日期范围没有限制。

如果您的表中有一个
DateTime
字段,而只需要日期字段,那么:

DATETIME

或:

6
投票
SELECT DATE_FORMAT(timestamp,'%M %D, %Y') FROM Mytable;

where
SELECT DATE_FORMAT(timestamp,'%Y-%m-%d') FROM Mytable;

是您的列名称。
但请注意,您会丢失可变绑定,因为MySQL将该方法的返回视为无别名的派生列。   因此,例如,如果您要在PHP脚本中传递时间戳,则将丢弃错误。  因此,只需添加一个别名即可重新将数据重新命名为变量。
timestamp

Where formatted_date是新的列名。 在PHP脚本中,如果您已获取到变量$ post,则
// in php script
$query = "SELECT DATE_FORMAT(timestamp,'%Y-%m-%d') AS formatted_date FROM Mytable";


最新问题
© www.soinside.com 2019 - 2025. All rights reserved.