假设我有一个有趣的视频网站,向用户展示有趣的视频。在每个视频下方,我都希望根据视频的时间戳和当前时间声明“5 秒前”、“31 分钟前”、“昨天”、“2 天前”。
我的时间戳格式为:2011-10-17 07:08:00
。
我不太擅长日期,但我猜我需要以秒为单位找出两个日期/时间之间的差异,然后决定它是在 0sec 和 60sec 之间以秒为单位显示,还是在 60sec 和 60sec 之间显示以分钟为单位显示 3600 秒,或以小时显示 3600 秒和 3600x24 秒之间,以昨天显示 3600x24 秒和 3600x24x2 秒之间,依此类推......我相信我应该使用 strtotime()
但我似乎不能找到当前时间,因为我发现使用 new date()
的那些解决方案似乎不起作用!
我该怎么做?
顺便说一句,附带问题,当我将 2011-10-17, 7:08PM EDT
插入 MySQL 时间戳列时,它会转换为 2011-10-17 07:08: 00
这是上午。我怎样才能让它存储在正确的上午/下午?
最佳答案
您可以使用 DateTime php的功能。
$datetime1 = new DateTime('2011-10-17 07:08:00');
$datetime2 = new DateTime();
$interval = $datetime1->diff($datetime2);
echo $interval->format('%R%a days');
从这里开始,您可以根据实际时差使用一些 if 语句以另一种格式(秒、分钟、小时、月等)输出时差!输出格式为查找 here
关于php - 日期和当前时间之间的时差?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7807241/