如何获取当前时间和eventTime之间的时间差
问题描述:
我正在使用php。我有一个桌子事件。其中有三个字段,EventID,EventName和EventTime。如何获取当前时间和eventTime之间的时间差
我已经使用日期时间格式为EVENTTIME字段。
现在我想写一个查询返回当前时间和事件之间的时间差异。
我希望自己的打印结果如下: - eventID发生1小时20分钟前。
请给我建议我该怎么做。
预先感谢您。
答
尝试这一个 -
SELECT EventID, TIME_FORMAT(TIMEDIFF(NOW(), EventTime), 'occured %H hour %i minutes ago') diff FROM table;
SELECT EventID, CONCAT('occured ', hours, IF(hours > 1, ' hours ', ' hour '), minutes, IF(minutes > 1, ' minutes', ' minute'), ' ago') FROM (
SELECT EventID,
@diff:=TIMEDIFF(NOW(), EventTime),
EXTRACT(HOUR FROM @diff) hours,
EXTRACT(MINUTE FROM @diff) minutes
FROM EVENT) t;
答
我这样做完全是这样的: -
SELECT
placeID,
IF(TIMEDIFF(NOW(), comment_datetime) > '01:00:00',
TIME_FORMAT(TIMEDIFF(NOW(), comment_datetime), 'occured %H hour %i minutes ago'),
TIME_FORMAT(TIMEDIFF(NOW(), comment_datetime), '%i minutes ago')
) diff
FROM
place_comments;
这可能是最好的方式,如果你想这样做纯粹的MySQL ,就我所能看到的唯一缺点是它会返回例如“00小时和19分钟前”或“07小时和01分钟前”。 – zrvan
谢谢先生......请告诉我,如果我只想显示“19分钟前”如果小时小于1,我该怎么办?如果小时是1或多于1,那么这应该显示小时和分钟...... –
@zrvan你说得对。在这种情况下,我们应该手动检查这些值并格式化数值。 – Devart