过去的文本日期到天(自)PHP

时间:2011-05-29 20:38:15

标签: php date days

嘿伙计们, 如何计算自其API在其API中输出之后的日期 例如:

  

Mon Jul 12 00:27:26 +0000 2010

到XXX

我们可以使用strtotime

来完成

谢谢你们, DEX

3 个答案:

答案 0 :(得分:1)

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

如果日期格式没有改变,您可以使用确切的日期格式反转过程(即反向时间戳 - >字符串(在Twitters服务器上)到时间戳)。使用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;

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

参考文献:

答案 1 :(得分:0)

你可能会在这里找到:

performing datetime related operations in PHP

或在php手册中有很多..

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

答案 2 :(得分:0)

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

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

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

321.85475694444

详情请见strtotime()time()date()

希望这有助于你。