Php 我应该使用什么数据类型在MySQL中为我的应用程序存储time()?
我计划使用php中的time()在我的网站上捕获用户发起的活动的开始和结束。我不确定这是否是捕获开始/结束时间的最佳方法。无论如何,数据将存储在MySQL中,但我也不确定应该使用什么数据类型。 根据我在stackoverflow上读到的答案,使用的数据类型取决于应用程序的用途 申请的目的Php 我应该使用什么数据类型在MySQL中为我的应用程序存储time()?,php,mysql,datetime,Php,Mysql,Datetime,我计划使用php中的time()在我的网站上捕获用户发起的活动的开始和结束。我不确定这是否是捕获开始/结束时间的最佳方法。无论如何,数据将存储在MySQL中,但我也不确定应该使用什么数据类型。 根据我在stackoverflow上读到的答案,使用的数据类型取决于应用程序的用途 申请的目的 最简单的是,我想记录一个事件的开始、停止(和持续时间) 活动。可能使用time() 最复杂的是,我想根据时间绘制统计数据 用户做了一个特定的活动,他们花了多少时间做这个活动 活动(总计),以及何时最成功/最不成
我应该使用什么数据类型来存储用户启动活动的开始和停止?
谢谢
谢谢大家的回答。TBH我还不确定,所以我还在做一些研究。我选择时间戳选项是因为我确实希望使用UTC(GMT)存储我的信息。遗憾的是,我将失去一些MySQLs内置的时间函数。无论如何,再次感谢您的回答。使用DATETIME存储时间,使用
date('Y-m-d H:i:s')
获取存储时间的当前时间。获取此值时,将以此格式获取时间
要将其转换为时间戳,请使用$timestamp=strotime($fetchedValue)
以另一种格式显示,使用date('H:i',$timestamp)
。阅读php日期手册中的格式
时间戳只能存储1970年1月1日之后的值,因为它存储时区数据。 因此,如果您试图在1970年1月1日之前存储日期,最好使用DATETIME。
坦率地说,只有当您在两台具有不同时区的机器之间主动同步原始数据时,时间戳才有用。如果您要到世界各地,MySQL几乎是一个不错的选择,因为它将时间存储为UTC而不是本地时间,所以如果在多个时区进行分析,DST更改不会给您带来问题
以不改变DST的时区为基础可以挽救生命,在具有不同DST转换日期的多个时区之间转换确实会导致问题,例如,考虑在从夏到冬季的变化中发生两次的时间戳。@ ZekMMS,为什么推荐时间戳?因为它支持所有的<代码>日期时间>代码>特性,另外还知道时间间隔。谢谢您的回复。为什么推荐DATETIME而不是MySQL的时间戳?时间戳只能存储1970年1月1日之后的值,因为它存储时区数据。因此,如果您试图存储1970年1月1日之前的日期,最好使用DATETIME。时间戳,我同意它存储时区数据,但它只有在两台服务器群集在一起,但使用不同的数据时才有用。在任何情况下,你都可以使用php来适应it@SomeshMukherjee
时间戳
不存储时区数据,它以UTC存储所有数据,并在读取时自动从UTC转换为本地时区,在写入时自动从本地时区转换为UTC。时间戳的范围确实小于日期时间的范围。这就是我的意思,我的坏朋友。我有时过于简单化了