PHP,使用mysql的时间戳?

时间:2012-08-01 03:13:04

标签: php mysql datetime insert timestamp

我一直在努力寻找一个直接的答案,但由于某种原因,答案不是来找我。我想知道将日期/时间存储到mysql的最佳方法是什么?

我研究过mysql中的时间戳是好的,因为它也会根据时区更新。

所以我在mysql中将我的列名设置为timestampdatatype为时间戳,但是存储当前日期/时间的最佳语法是什么?

"INSERT INTO table(timestamp) VALUES(now())" //or use timestamp()? or is there such thing?

请帮助,谢谢!

2 个答案:

答案 0 :(得分:0)

您可以在表格中使用datetime数据类型,只需将其存储为NOW(),然后将其存储为YYYY-MM-DD HHHH:MM:SS

答案 1 :(得分:0)

以下是一些注意事项:

  • 将列类型设置为BIGINT,以便存储64位时间戳
  • 您可以使用PHP time()函数或MySQL的UNIX_TIMESTAMP()函数
  • 进行插入
  • 将列命名为timestamp以外的其他内容。这是一个允许的单词 1,见上一节,但它也是MySQL中的一个类型。

如果您将时间存储为MySQL中的Unix时间戳,它们将以UTC格式存储,这使得处理时区转换非常容易。在64位环境中,PHP可以处理最高达219,250,468的日期。

这两个查询都是相同的:

INSERT INTO `table` (`time`) VALUES(UNIX_TIMESTAMP());
// or
$time = time();
INSERT INTO `table` (`time`) VALUES($time);

然后在PHP中显示它:

SELECT `time` from `table` WHERE `id` = 1;
echo date('Y-m-d H:i:s e', $row['time']); // 2012-07-31 23:59:59 America/Los_Angeles

无论在PHP date_default_timezone_set()中设置什么时区,都是在PHP中输出日期时使用的时区。