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

Php 为什么time()不返回与strtotime相同的值(“2013-08-28 06:38:47”),php,Php,我在6:38:47运行time(),它返回的值与同一时间的strotime不同。为什么会这样?它应该绝对返回相同的值。运行以下代码: <?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"; p

我在6:38:47运行time(),它返回的值与同一时间的strotime不同。为什么会这样?

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

<?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";
?>

你觉得这有什么不同吗?您也可以发布测试代码,可能其中有错误。

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


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

同一时间的STROTOME
--您是如何获得该时间的?我只是手动设置的。然后在几秒钟内运行strotime(),但结果值相差数千秒。我测试它是因为我正在处理一个“很久以前”的函数,但它不起作用,这似乎就是原因。这与我的php设置有关吗?是您的本地时间还是php使用的时间?顺便说一句,我得到的两个值是1377688427和1377697127,所以相差超过2小时,检查您的时区()您在
$time
中保持相同的值,而OP从
time()中获取值
,然后从其他来源-这与您描述的不同。
time = 1377686839
string = 2013-08-28 12:47:19
strtotime = 1377686839
difference = 0