Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用PHP提取服务器时间并存储在MySQL-Unix时间戳中,可以吗?_Php_Mysql_Datetime - Fatal编程技术网

用PHP提取服务器时间并存储在MySQL-Unix时间戳中,可以吗?

用PHP提取服务器时间并存储在MySQL-Unix时间戳中,可以吗?,php,mysql,datetime,Php,Mysql,Datetime,全部, 我正试图决定如何在一个依赖于服务器时间间隔的项目中处理时间。简言之,某些内容在用户至少提前n小时完成特定操作后可用。现在,似乎最简单的选择是提取Unix时间戳,并将其按原样存储在MySQL中 为什么这不是个好主意?有什么我需要注意的吗?性能影响?对我来说很好。尽管您可能应该将其存储为一个对象并使用对象,而不是UNIX时间戳和时间 我觉得很好。尽管您可能应该将其存储为一个对象并使用对象,而不是UNIX时间戳和时间 事实上,这是最好的主意。功能时间为您提供1970年1月1日00:00:00起

全部,

我正试图决定如何在一个依赖于服务器时间间隔的项目中处理时间。简言之,某些内容在用户至少提前n小时完成特定操作后可用。现在,似乎最简单的选择是提取Unix时间戳,并将其按原样存储在MySQL中


为什么这不是个好主意?有什么我需要注意的吗?性能影响?

对我来说很好。尽管您可能应该将其存储为一个对象并使用对象,而不是UNIX时间戳和时间


我觉得很好。尽管您可能应该将其存储为一个对象并使用对象,而不是UNIX时间戳和时间


事实上,这是最好的主意。功能时间为您提供1970年1月1日00:00:00起的秒数。没有性能影响,因为它只是一个整数。在MySQL中,创建一个类似INT,10,Unsigned的字段

时间会让你在“选择”和“位置”上表现出色。看

你唯一的问题是:时间限制在2038年。。。但到2038年,计算机内部时钟字节将更大。。。希望如此

关于DATETIME,您可能需要担心的另一件事是:PHP时间在UTC下运行,而DATETIME取决于时区

当您插入10000000行时的统计信息

使用索引选择/WHERE时的统计信息:


事实上,这是最好的主意。功能时间为您提供1970年1月1日00:00:00起的秒数。没有性能影响,因为它只是一个整数。在MySQL中,创建一个类似INT,10,Unsigned的字段

时间会让你在“选择”和“位置”上表现出色。看

你唯一的问题是:时间限制在2038年。。。但到2038年,计算机内部时钟字节将更大。。。希望如此

关于DATETIME,您可能需要担心的另一件事是:PHP时间在UTC下运行,而DATETIME取决于时区

当您插入10000000行时的统计信息

使用索引选择/WHERE时的统计信息:



时间戳很好。不要把它们分开,这不需要计算。如果您计划更频繁地查询每个对象的超时,而不是更新超时,那么最好存储过期时间,而不是当前时间,以便只计算一次增量。注意DATETIME列:它们不考虑时区设置,而您的PHP考虑。。。所以,如果你碰巧在不同的请求上有不同的时区设置,那么你就不走运了。时间戳是绝对的,它们也可以解释像夏令时那样的管理时间,3:01是1:59之后的2分钟…

时间戳可以。不要把它们分开,这不需要计算。如果您计划更频繁地查询每个对象的超时,而不是更新超时,那么最好存储过期时间,而不是当前时间,以便只计算一次增量。注意DATETIME列:它们不考虑时区设置,而您的PHP考虑。。。所以,如果你碰巧在不同的请求上有不同的时区设置,那么你就不走运了。时间戳是绝对的,它们也可以解释像夏令时那样的管理时间,3:01是1:59之后的2分钟…

错了,最好是使用MySQL的DATETIME,它针对时间进行了优化,还提供了诸如DIFF或HOUR等简洁的功能。我需要将信息存储长达几个月,一个小时的细节。@Paul Tomblin-为什么这样更好?谢谢。错了,最好的办法是使用MySQL的DATETIME,它针对时间进行了优化,还提供了诸如DIFF或HOUR等简洁的函数。我需要将信息存储长达几个月,并有一个小时的详细级别。@Paul Tomblin-为什么这样更好?谢谢。秒除以60不是小时。真的。让我纠正一下,谢谢你-秒除以60不是小时。事实上。让我纠正一下,谢谢你-@大卫·兰格:为什么会这样?你测试过吗?@DavidBélanger我没有看到任何证据。你有链接吗?@JDelage:因为你不是在处理数字,你是在处理时间,时间更易读,也更容易处理。您还可以获得整洁的时间相关函数,例如DIFF以获得2次之间的差异,函数以获得不同时间段的小时、分钟、天等,因为您的索引将非常小,占用的空间更少。看…额外的问题。。。您需要在PHP中初始化一个类。。。时间在任何方面都更快,而且更容易利用时间-60@DavidB埃兰格:为什么会这样?你测试过吗?@DavidBélanger我没有看到任何证据。你有链接吗?@JDelage:因为你不是在处理数字,你是在处理时间,时间更易读,也更容易处理。您还可以获得整洁的与时间相关的函数,例如DIFF以获得2次之间的差异,函数以获得
不同的时间段——小时、分钟、天等等,因为你们的索引会小得多,占用的空间也会少。看…额外的问题。。。您需要在PHP中初始化一个类。。。时间在任何方面都更快,而且更容易做到时间60
$time = new DateTime;
echo $time->format("Y-m-d H:i:s"); //Outputs current time, example: 2012-10-13 22:58:34