【问题标题】:Time difference between a Date and current Time?日期和当前时间之间的时差?
【发布时间】:2011-12-10 01:42:17
【问题描述】:

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

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

我不太擅长日期,但我猜我需要找出 2 个日期/时间之间的差异(以秒为单位),然后决定它是在 0sec 和 60sec 之间以秒为单位显示,还是在 60sec 和3600 秒以分钟为单位显示,或在 3600 秒和 3600x24 秒之间以小时显示,在 3600x24 秒和 3600x24x2 秒之间以显示昨天,依此类推...我相信我应该使用strtotime(),但我似乎无法像那些那样找到当前时间我发现使用了new date() 的解决方案似乎不起作用!

我该怎么做?

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

【问题讨论】:

  • 我喜欢第一句话。有趣的视频网站正在播放有趣的视频的想法是问题的一部分吗? :)
  • 这些天人们似乎投了很多票
  • 我认为这个问题是收集 dvs,因为它是一个需求转储。说您找到了strtotime()new date() 并不能真正将任务缩小到特定的故障点。这需要答案来提供一个完全构建的教程/解决方案,以处理许多不同的人类可读的可能性。你的问题是问了多个问题。对于这样一个具有通用/基本标题的旧页面,该页面已被证明对很多研究人员没有帮助,并且接受的答案与提供您所要求的内容相差甚远。 需要更多关注

标签: php jquery mysql codeigniter date


【解决方案1】:

你可以使用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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多