PHP,使用 mysql 的时间戳


PHP, using timestamp for mysql?

我一直在试图寻找一个直接的答案,但由于某种原因,答案没有出现在我身边。我想知道将日期/时间存储到 mysql 中的最佳方法是什么?

我研究了 mysql 中的时间戳很好,因为它也会根据时区进行更新。

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

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

请帮忙,谢谢!

您可以在表中使用datetime数据类型并将其存储为 NOW() 这会将其存储为 YYYY-MM-DD HHHH:MM:SS

以下是一些注意事项:

  • 将列类型设置为 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 中输出日期时使用的时区。