0

嘿,伙计们,如何计算自 Twitter 在其 API 中输出的日期以来过去的天数,例如:

2010 年 7 月 12 日星期一 00:27:26 +0000

到 XXX

我们可以用strtotime来做吗

谢谢大家,德克斯

4

3 回答 3

1

兼容性说明:仅适用于 PHP >= 5.3.0

如果日期格式没有改变,您可以使用确切的日期格式反转该过程(即反向时间戳 -> 字符串(在 Twitter 服务器上)到时间戳)。使用DateTime::createFromFormat手册页上的表格:

<?php
$str = 'Mon Jul 12 00:27:26 +0000 2010';
$oDateTime = DateTime::createFromFormat('D M d H:i:s T Y', $str);
$unix_timestamp = $oDateTime->getTimestamp();
echo $unix_timestamp;
?>

注意:在我的机器上,date('d-m-Y H:i:s', $unix_timestamp)相差两个小时,机器时区是 GMT+2。

要计算两个 Unix 时间戳之间的天数差,请使用数学(一天有 86400 秒):

echo ($unix_timestamp1 - $unix_timestamp2) / 86400;

如果您有两个这样的日期,您可以DateTime::diff按照 Zerocrates 评论中的建议使用。您已经创建了两个DateTime实例,DateTime::createFromFormat并使用传递的两个参数调用了DateTime::diff先前创建的 DateTime 实例。返回的DateInterval实例有一个d包含天数差异的属性。
另一种方法是使用该getTimestamp方法,从上一个示例中进行数学运算。

参考:

于 2011-05-29T20:45:24.247 回答
0

你可能会在这里找到:

在 PHP 中执行与日期时间相关的操作

或者在php手册中有很多..

http://php.net/manual/en/function.date.php

于 2011-05-29T20:47:44.730 回答
0

你可以这样做($your_date你提到的字符串在哪里):

$diff = (time() - strtotime($your_date)) / (24*60*60);

在您的情况下,当我echo $diff;执行输出时(在我发布答案时):

321.85475694444

查看 和 的更多strtotime()详细time()信息date()

希望这对您有所帮助。

于 2011-05-29T20:59:36.943 回答