计算时间() - 分钟或小时或数周或数月或数年PHP

时间:2017-05-21 00:18:27

标签: php time unix-timestamp

我目前有一段代码可以获取字符串。

例如:23分钟前

我的代码,如果是分钟,则获得数字(在这种情况下为23)。

我想从time()unix时间戳值中删除分钟(在本例中)。

我试过了:

 $timestamplastcheck = strtotime("-".$minutes." minutes", strtotime(time()));

但它回复了错误的日期。

有人能告诉我什么是错的吗?而且,如果以相同的方式添加小时,周,月和年?

非常感激。

2 个答案:

答案 0 :(得分:1)

可以将Date与日期方法modify一起使用,例如:

$ago = '23 minutes ago';
$date = (new \DateTime())->modify($ago);
$timestamplastcheck = $date->getTimestamp()

echo $date->format('c');

使用此功能,您无需解析字符串以获取数字,modify非常强大。 http://php.net/manual/en/datetime.modify.php

答案 1 :(得分:1)

strtotime(time())是废话并返回false

false然后通过其他0电话投放到strtotime(),您的所有相对时间格式将相对于1.1.1970

正确的方法是完全省略第二个参数,因为time()无论如何都是默认值:

$timestamplastcheck = strtotime("-".$minutes." minutes");