将mysql时间戳转换为实际日期和时间?
Posted
技术标签:
【中文标题】将mysql时间戳转换为实际日期和时间?【英文标题】:convert mysql timestamp into actual date and time? 【发布时间】:2011-07-29 16:03:13 【问题描述】:我将日期存储在 mysql 表中,它们被设置为在每一行中存储为 CURRENT TIMESTAMP,并存储如下:
2010-05-29 01:17:35
但我想做的是以某种方式使用 php 来分离所有内容并创建一个更像:
2010 年 5 月 29 日凌晨 1:17
谁能至少指引我走上我应该走的正确道路。非常感谢任何帮助!
【问题讨论】:
【参考方案1】:echo date('M j Y g:i A', strtotime('2010-05-29 01:17:35'));
http://php.net/manual/en/function.date.php
【讨论】:
太棒了!非常感谢!超级简单!再次感谢! 请务必在复合格式页面php.net/manual/en/datetime.formats.compound.php 上查看 PHP 手册中的 Localized Notations【参考方案2】:你有两个解决方案:
使用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 时间戳,这意味着日期范围有限(如果使用 32 位整数,则从 1970 年到 2038 年)。
另一方面,使用DateTime
类,您可以使用的日期范围将没有限制。
【讨论】:
"The range is from about 292 billion years in the past to the same in the future." - 不会真正称其为 “无限制”。哦,好吧,无论如何+1。 ;-))) 哼,我确定有人会说这不是无限 ;-)【参考方案3】:如果您的表中有 DATETIME
字段并且您只需要日期字段,那么:
SELECT DATE_FORMAT(timestamp,'%M %D, %Y') FROM Mytable;
或:
SELECT DATE_FORMAT(timestamp,'%Y-%m-%d') FROM Mytable;
timestamp
是您的列名。
【讨论】:
以上是关于将mysql时间戳转换为实际日期和时间?的主要内容,如果未能解决你的问题,请参考以下文章