将mysql时间戳转换为实际的日期和时间?

mcb*_*eav 36 php mysql timestamp date

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

2010-05-29 01:17:35
Run Code Online (Sandbox Code Playgroud)

但我想要做的是以某种方式使用PHP能够分离一切,并创建一个更像日期:

2010年5月29日上午1:17

任何人至少可以指引我走正确的道路.任何帮助是极大的赞赏!

dec*_*eze 60

echo date('M j Y g:i A', strtotime('2010-05-29 01:17:35'));
Run Code Online (Sandbox Code Playgroud)

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


Pas*_*TIN 23

你有两个解决方案:


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

echo date('M j Y g:i A', strtotime('2010-05-29 01:17:35'));
Run Code Online (Sandbox Code Playgroud)

要么 :

$dt = new DateTime('2010-05-29 01:17:35');
echo $dt->format('M j Y g:i A');
Run Code Online (Sandbox Code Playgroud)


strtotime+ date是你会看到最常用的解决方案; 但它不是最好的解决方案:有了这些,你将使用UNIX时间戳,这意味着有限的日期范围(从1970年到2038年,如果使用32位整数).

另一方面,使用该DateTime课程,您可以使用的日期范围没有限制.

  • 哼,我确定有人会说这不是*无限*;-) (7认同)
  • ["范围从过去的约2920亿年到未来的相同."](http://php.net/manual/en/intro.datetime.php) - 不会真的称之为*"没有限制"*.好吧,反正+1.;-))) (5认同)

sre*_*nth 5

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

SELECT DATE_FORMAT(timestamp,'%M %D, %Y') FROM Mytable;
Run Code Online (Sandbox Code Playgroud)

或者:

SELECT DATE_FORMAT(timestamp,'%Y-%m-%d') FROM Mytable;
Run Code Online (Sandbox Code Playgroud)

timestamp你的列名在哪里。