在PHP中,如果我有一个datetime
对象或者timestamp
作为一个对象的属性,我如何才能在PHP中得到一个粗略的记录年龄。
因此,它不是格式化的日期字符串,而是说诸如此类的东西"about 1 hour ago", "3 days ago", "1 year ago"
。
例如,有点像 redmine 用于任务评论。
这个过程叫什么?
我尝试搜索年龄并datetime
不断寻找代码来获取某人的出生年龄,这不是我想要的。
如果你有 2 个对象。您需要将第一个对象转换为时间戳,第二个对象是 time();
time() - 返回以 Unix 纪元(格林威治标准时间 1970 年 1 月 1 日 00:00:00)以来的秒数为单位的当前时间。
然后你用你想要的日期减去 time(),你会得到几秒钟的差异。要从秒中获得分钟,您需要将其除以60
,要获得小时,您需要将其除以60 * 60 = 3600
等等。
$secondsAgo = time() - $timeStamp;
$minutesAgo= (time() - $timeStamp) / 60;
$hoursAgo= (time() - $timeStamp) / 60*60;
$daysAgo= (time() - $timeStamp) / 60*60*24;
要将字符串更改为时间戳,您可以使用strtotime()
另一种解决方案是在 DateTime 对象上使用 diff() 。
$datetime1 = new DateTime('2009-10-11');
$datetime2 = new DateTime('2009-10-13');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%R%a days');
这将返回DateInterval对象,该对象具有许多公共属性