将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时间戳转换为实际日期和时间?的主要内容,如果未能解决你的问题,请参考以下文章

使用 mySQL 中的行聚合和操作将 BigInt 时间戳转换为真实日期

mysql查询时间戳和日期的转换

急!将mysql中日期转化为时间戳

MySQL中日期和时间戳互相转换的函数和方法

将长的 Unix 纪元时间戳转换为实际日期/时间

MySQL将日期字符串转换为Unix时间戳