日期和当前时间之间的时差?

时间:2011-10-18 12:31:09

标签: php jquery mysql codeigniter date

假设我有一个有趣的视频网站,向用户显示有趣的视频。在每个视频下面,我想根据视频的时间戳和当前时间有一个声明“5秒前”,“31分钟前”,“昨天”,“2天前”。

我的时间戳格式为:2011-10-17 07:08:00

我对日期不太好,但我猜我需要找到2个日期/时间之间的差异,然后决定它是否在0秒和0秒之间。以秒为单位显示60秒,或者在60秒和60秒之间显示3600秒以分钟显示,或者在3600秒和3600秒之间显示3600x24秒以小时显示,介于3600x24sec之间昨天要显示3600x24x2秒,依此类推......我相信我应该使用strtotime()但我似乎无法找到当前时间,因为我发现使用new date()的解决方案似乎不起作用!< / p>

我该怎么做?

顺便问一下,当我将2011-10-17, 7:08PM EDT插入MySQL时间戳列时,它会转换为2011-10-17 07:08:00即AM。如何将其存储在正确的AM / PM中?

2 个答案:

答案 0 :(得分:9)

您可以使用php的DateTime功能。

$datetime1 = new DateTime('2011-10-17 07:08:00');
$datetime2 = new DateTime();
$interval = $datetime1->diff($datetime2);
echo $interval->format('%R%a days');

从这里开始,您可以使用一些if语句以另一种格式(秒,分钟,小时,月等)输出时差,具体取决于实际的时差!输出的格式是查找here

答案 1 :(得分:2)

您可以非常轻松地使用MySQL的DATEDIFFTIMEDIFF函数。两者一起告诉你到底已经过了多长时间。