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

Jam*_*mes 7 php mysql

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

2010-06-19 18:40:51
Run Code Online (Sandbox Code Playgroud)

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

$timeStamp = $row['date'];
$timeStamp = date( "m/d/Y", $timeStamp);
Run Code Online (Sandbox Code Playgroud)

但它返回这个:

12/31/1969
Run Code Online (Sandbox Code Playgroud)

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

Sar*_*raz 10

使用strtotime功能:

$timeStamp = $row['date'];
$timeStamp = date( "m/d/Y", strtotime($timeStamp));
Run Code Online (Sandbox Code Playgroud)

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

06/19/2010
Run Code Online (Sandbox Code Playgroud)


timestamp字段DEFAULT CURRENT_TIMESTAMP会自动更新,但您可以通过将其更改为禁用该行为,否则它将自动更新.从手册:

在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子句时,该列具有其默认值的当前时间戳,但不会自动更新.