UNIX时间戳和MYSQL

时间:2011-08-16 17:07:38

标签: php mysql timestamp

我通过TIMESTAMP存储mysql中的条目日期和默认值UNIX_TIMESTAMP,但是当我把它带回来时,它是2011-08-16 11:43:52并且如果我尝试用它来设置样式

<?= date('F j, o', $a['time']) ?>

它只是将时间戳从零开始,带回1970年12月31日

为什么呢?我该如何解决?

3 个答案:

答案 0 :(得分:4)

使用

SELECT UNIX_TIMESTAMP(field)

UNIX_TIMESTAMP()列上使用TIMESTAMP时,该函数直接返回内部时间戳值,没有隐式的“字符串到Unix时间戳”转换。

Manual

答案 1 :(得分:1)

MySQL TIMSTAMP列存储为YYYY-MM-DD HH-MM-SS,即使您输入UNIX_TIMESTAMP,它仍将以该格式存储。

所以你可以做的是:

<?= date('F j, o', strtotime($a['time'])) ?>

演示:http://codepad.org/jBLR2KpH

答案 2 :(得分:0)

date()取一个数字而不是字符串。无论内部表示如何,MySQL始终将您的日期作为字符串返回。试试这个:

<?php echo date("F j, o", strtotime($a['time']); ?>