您好我正在尝试检查数据库中的消息有多长我正在使用laravel4框架而且我有这个:
date( "h", strtotime($message->created_at)) - date('h')
但它只计算我需要将天数和月数更改为小时数,然后计算数据库中的数量。我该怎么办?
答案 0 :(得分:1)
date()
返回一个字符串,你无法对字符串进行数学运算。 date('h')
现在返回当前小时,例如:10
,因为它是上午10点。如果$message->created_at
为Feb 3, 1978 10:01:02
,则date('h', strtotime($message->created_at))
也会返回10
。
假设$message->created_at
位于acceptable format:
$diff_in_hours = (time() - strtotime($message->created_at)) / 3600;
答案 1 :(得分:0)
你的问题有点不清楚,但听起来像你正在寻找所谓的人类可读时间戳"。如果您已正确设置数据库表,则create_at和updated_at都应检索为carbon objects,为您提供几种不同的方式来显示日期。实际上,实现预期的效果非常简单:
$message->created_at->diffForHumans()
这应该打印一个可读的时间,就像你在stackoverflow上看到的那样(1小时前,23分钟前等等)。
查看链接以获取有关碳物体的更多信息。