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

Calculate time() - minutes or hours or weeks or months or years PHP

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

示例:23 分钟前

我的代码,如果是分钟,获取数字(在本例中为 23)。

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

我试过了:

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

但是它返回了错误的日期。

有人能告诉我这是怎么回事吗?还有,如果小时、周、月和年以同样的方式相加?

非常感谢。

可以将 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

strtotime(time()) 是废话 returns false.

false 然后被另一个 strtotime() 调用转换为 0,并且您所有的相对时间格式都将相对于 1.1.1970.

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

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