【发布时间】:2011-07-29 16:03:13
【问题描述】:
我将日期存储在 mysql 表中,它们被设置为在每一行中存储为 CURRENT TIMESTAMP,并存储如下:
2010-05-29 01:17:35
但我想做的是以某种方式使用 PHP 来分离所有内容并创建一个更像:
2010 年 5 月 29 日凌晨 1:17
谁能至少指引我走上我应该走的正确道路。非常感谢任何帮助!
【问题讨论】:
我将日期存储在 mysql 表中,它们被设置为在每一行中存储为 CURRENT TIMESTAMP,并存储如下:
2010-05-29 01:17:35
但我想做的是以某种方式使用 PHP 来分离所有内容并创建一个更像:
2010 年 5 月 29 日凌晨 1:17
谁能至少指引我走上我应该走的正确道路。非常感谢任何帮助!
【问题讨论】:
echo date('M j Y g:i A', strtotime('2010-05-29 01:17:35'));
【讨论】:
你有两个解决方案:
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 类,您可以使用的日期范围将没有限制。
【讨论】:
如果您的表中有 DATETIME 字段并且您只需要日期字段,那么:
SELECT DATE_FORMAT(timestamp,'%M %D, %Y') FROM Mytable;
或:
SELECT DATE_FORMAT(timestamp,'%Y-%m-%d') FROM Mytable;
timestamp 是您的列名。
【讨论】: