我目前有一段代码可以获取字符串。
例如:23分钟前
我的代码,如果是分钟,则获得数字(在这种情况下为23)。
我想从time()unix时间戳值中删除分钟(在本例中)。
我试过了:
$timestamplastcheck = strtotime("-".$minutes." minutes", strtotime(time()));
但它回复了错误的日期。
有人能告诉我什么是错的吗?而且,如果以相同的方式添加小时,周,月和年?
非常感激。
答案 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");