Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.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
unix时间戳在php和MySQL中是否始终相同?_Php_Mysql - Fatal编程技术网

unix时间戳在php和MySQL中是否始终相同?

unix时间戳在php和MySQL中是否始终相同?,php,mysql,Php,Mysql,PHP有time(),MySQL有UNIX\u TIMESTAMP() 在给定的机器上,它们是否总是相等的 我希望答案通常是肯定的,但是否存在任何边缘情况?在同一台机器上,它们在同一时间总是相等的 请注意,MySQL托管在第二台机器上是很常见的,这可能会带来一些小差异(在正常操作中,查询返回到进行查询的机器时的网络延迟),也可能带来更大的差异(如果一台/两台服务器在本地的时间不正确).是,它们将始终表示相同的时间,加上或减去彼此执行所需时间的任何差异 这是因为和都返回自Unix纪元以来的秒数,U

PHP有
time()
,MySQL有
UNIX\u TIMESTAMP()

在给定的机器上,它们是否总是相等的


我希望答案通常是肯定的,但是否存在任何边缘情况?

在同一台机器上,它们在同一时间总是相等的


请注意,MySQL托管在第二台机器上是很常见的,这可能会带来一些小差异(在正常操作中,查询返回到进行查询的机器时的网络延迟),也可能带来更大的差异(如果一台/两台服务器在本地的时间不正确).

,它们将始终表示相同的时间,加上或减去彼此执行所需时间的任何差异

这是因为和都返回自Unix纪元以来的秒数,Unix纪元是UTC,设计上与UTC无关


还应该注意的是,如果您使用的是要转换为unix时间戳的特定日期,则时区会有所不同。

即使MySQL位于具有不同时区的不同计算机上,unix时间戳是否应该从UTC 00:00:00提供相同的值?我认为时间上唯一可能的差异是流程执行的时间。@Quantastical是的,它应该提供相同的值。世界上的每个时区在任何特定时刻都有完全相同的UNIX时间戳。也就是说,我所说的“细微差别”是,如果您与MySQL服务器的连接有点慢或类似的情况,则会出现1-2秒。@Quantastical,“服务器可能在本地有不正确的时间”,特别是如果它们没有通过ntp更正时间。在这种情况下,两个不同的服务器在同一时刻返回两个不同的时间戳。@Quantastical。调用
UNIX\u TIMESTAMP()
time()
会查询服务器的系统时钟。如果该系统时钟不正确,则产生的时间戳也同样不正确。NTP是一项服务,将不断咨询世界各地的时间服务器,以保持系统时钟的准确性。@ceejayoz完美,谢谢。这就是我不确定的一点,函数调用是否ping了一些外部资源,或者是根据系统时钟计算出来的。我同意你的回答:)再次感谢你花时间帮助我。@Quantastical你误读了我的答案。我注意到,在不同的机器上,由于时间延迟、不使用NTP等原因,您可能会看到差异。时区与此无关。@JayBlanchard DST不会有任何影响。啊,我的坏@ceejayoz-只是在PHP中闪回了一个时区设置,而MySQL中没有。@JayBlanchard啊,现在可以得到乐趣了。:-p
UNIX\u时间戳(field)
field
DATETIME
时,可能会变得毛茸茸的。我们存储为日期/时间
时间戳
,而不是
日期时间
,并用于PHP操作。