1

我正在开发一个应用程序,该应用程序向第 3 方产品许可服务器发送请求,等待响应,然后在几秒钟后向我的服务器发送请求。后来,我根据它们的创建日期和时间比较了这两条记录。当我查看时间时,它们似乎相隔大约 6 小时(可能是由于时区差异)。但是,当我通过 PHP 的 strtotime() 函数运行每个函数时,结果仅相差几秒钟。这是一个例子:

echo strtotime("2013-04-29T14:55:47.707Z");
echo '<br>';
echo strtotime("2013-04-29 08:56:10");

显示为:

1367247347
1367247370

这仅相差 23 秒,而不是 6 小时。

如果我没有提供有关每个日期字符串的时区的任何信息,它们怎么会如此接近?

(请记住,我希望这些结果是正确的;我只是不确定我是如何得到它们的)

4

1 回答 1

0

strtotime除非绝对必须,否则您应该真正避免使用。当您实际上拥有完整的日期格式时,就像您所做的那样,您应该使用DateTimePHP 内置的类。

此代码应为您提供正确的 UNIX 时间戳。(根据您的服务器配置,您可能不需要包含默认时区。如果您这样做,请将其设置为您的时区。)

// You may be able to comment this out depending on your server configuration
date_default_timezone_set('America/New_York'); 

$dateone = new DateTime('2013-04-29T14:55:47.707Z');
$datetwo = new DateTime('2013-04-29 08:56:10');

echo $dateone->format('U');
echo "<br/>";
echo $datetwo->format('U');

输出:

1367247347
1367240170
于 2013-08-21T20:09:54.493 回答