我在选择在mysql数据库中插入时间的有效方法时遇到了一些麻烦。
我知道mysql有自己的时间戳系统,但它并不是我想要的。
我目前使用date("Y-m-d H:i:s", time());
并完成工作。
但我想知道标准是什么,或者最佳做法是插入时间使其以后更容易检索。
感谢。
PS。我已经在网站上搜索了任何欺骗帖子,但是我找不到任何信息,如果你认为这是一个随便关闭的欺骗。
答案 0 :(得分:3)
您按照mysql喜欢的方式插入它,并在检索时,您可以按照自己喜欢的方式对其进行格式化(DATE_FORMAT())。您不以其他格式存储它,因为这是您想要显示它的方式,因为它会破坏date \ time的所有功能。
答案 1 :(得分:2)
最好的办法是以UTC格式存储数据库中的日期和时间,并在显示时将它们转换为适当的时区。 MySQL甚至还具有“现在在UTC中”的特殊功能:UTC_TIMESTAMP()
。
当您使用PHP的date
函数格式化Unix时间戳时,您将在Web服务器的时区输出的日期和时间表示。这很少是您想要的,并且只要Web服务器的时区发生变化(例如夏令时期间或Web服务器物理上重新定位到不同的时区),就会导致各种问题。
答案 2 :(得分:1)
您可以将它们存储为MySQL时间戳,然后使用UNIX_TIMESTAMP()转换为在PHP中使用的unix时间,也可以在插入时使用FROM_UNIXTIME将unix时间转换为MySQL时间戳。
SELECT UNIX_TIMESTAMP(`field`) AS `unix_timestamp` FROM `table`;
INSERT INTO `table` SET `field` = FROM_UNIXTIME(unix_timestamp);