如何格式化PHP中的时间戳日期?

时间:2010-06-20 20:59:08

标签: php mysql

我有一个数据库行,其类型为“timestamp”。每次添加新记录时,它会自动填充该记录插入的时间。现在,对于其中一个记录,它保留了值:

2010-06-19 18:40:51

我尝试通过以下方式将其转换为更加用户友好的格式:

$timeStamp = $row['date'];
$timeStamp = date( "m/d/Y", $timeStamp);

但它返回了这个:

12/31/1969

我在某处读到日期函数只能在unix时间戳上使用,也许我在数据库中的内容不是一个合适的时间戳,我需要先将它转换为一个才能使用日期函数(?) 。解决方案是什么?

4 个答案:

答案 0 :(得分:7)

使用strtotime功能:

$timeStamp = $row['date'];
$timeStamp = date( "m/d/Y", strtotime($timeStamp));

对于您的示例2010-06-19 18:40:51中的日期,它将返回:

06/19/2010


timestamp字段会自动更新,但您可以通过将其更改为DEFAULT CURRENT_TIMESTAMP来禁用该行为,否则会自动更新。来自manual

  

在CREATE TABLE语句中,可以通过以下任何方式声明第一个TIMESTAMP列:

     

对于DEFAULT CURRENT_TIMESTAMP和ON UPDATE CURRENT_TIMESTAMP子句,该列具有其默认值的当前时间戳,并自动更新。

     

既没有DEFAULT也没有ON UPDATE子句,它与DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP相同。

     

使用DEFAULT CURRENT_TIMESTAMP子句且没有ON UPDATE子句时,该列具有其默认值的当前时间戳,但不会自动更新。

答案 1 :(得分:2)

strtotime($timeStamp)(字符串到时间)是您要转换为unix时间戳的内容。

然后您可以使用日期,例如date( "m/d/Y", strtotime($timeStamp) )

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

答案 2 :(得分:0)

SELECT UNIX_TIMESTAMP(sql_row_with_timestamp) AS some_much_more_readable_name FROM your_table应该可以解决问题。

答案 3 :(得分:-1)

PHP的格式非常简单,为此,您只需要使用所需的格式更改“ m / d / Y”部分即可。

在本文中,您将通过示例

获得不同的php date时间戳格式。

https://www.etutorialspoint.com/index.php/63-date-timestamp-format