计算时间 () - 分钟或小时或周或月或年 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");
我目前有一段获取字符串的代码。
示例: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");