为什么time()没有返回与strtotime相同的值(“2013-08-28 06:38:47”)

时间:2013-08-28 10:41:02

标签: php

我在6:38:47运行时间(),它返回的值不同于同一时间的strtotime。这是为什么?

2 个答案:

答案 0 :(得分:0)

绝对应该返回相同的值。运行以下代码:

<?php
$time = time();
$string = date('Y-m-d H:i:s', $time);
$strtotime = strtotime($string);
print "time = $time\n";
print "string = $string\n";
print "strtotime = $strtotime\n";
print "difference = ".($time-$strtotime)."\n";
?>

我的输出现在:

time = 1377686839
string = 2013-08-28 12:47:19
strtotime = 1377686839
difference = 0

你对此有所不同吗?你也可以发布你的测试代码,也许那里有一个错误。

答案 1 :(得分:0)

strtotime根据系统时区解释时间字符串参数; time与时区无关,因为它只返回自Unix时代开始以来的秒数。

如果你的系统时区不是UTC,你应该期望值不同,因为传递给strtotime的时间字符串参数是硬编码的。您的“当前挂钟时间”和系统的概念是不同的,因此时间戳的差异。