关于php:将mysql时间戳转换为实际的日期和时间?

convert mysql timestamp into actual date and time?

我将日期存储在mysql表中,它们被设置为在每一行中存储为CURRENT TIMESTAMP并存储如下:

1
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


你有两个解决方案:

  • 使用strtotime()将日期解析为时间戳,使用date()将其重新格式化为字符串
  • 或者使用DateTime

在PHP代码中,这意味着使用:

1
echo date('M j Y g:i A', strtotime('2010-05-29 01:17:35'));

要么 :

1
2
$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类,您可以使用的日期范围没有限制。


如果表中有DateTime字段,并且只需要日期字段,则:

1
SELECT DATE_FORMAT(timestamp,'%M %D, %Y') FROM Mytable;

要么:

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

其中timestamp是您的列名。