我有一个数据库行,其类型为"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子句时,该列具有其默认值的当前时间戳,但不会自动更新.
| 归档时间: |
|
| 查看次数: |
21137 次 |
| 最近记录: |