【问题标题】:PHP: Best way to convert a datetime to just time string?PHP:将日期时间转换为时间字符串的最佳方法?
【发布时间】:2010-12-03 19:14:10
【问题描述】:

我有一个从数据库中提取的日期时间,如下所示:2000-01-01 08:00:00

现在我需要转换它,所以我只剩下:08:00:00

最好的方法是什么?

【问题讨论】:

  • 最简单的方法是从数据库中提取TIME(column)

标签: php datetime time


【解决方案1】:
substr('2000-01-01 08:00:00', 11);

【讨论】:

  • +1:如果结果始终为 DATETIME 格式,这是最安全的方式。真正的日期解析总是带有干扰时间戳的风险(这通常是需要的,但不是在这里)
【解决方案2】:

你可以使用

substr($timestamp, -8);

【讨论】:

  • 我和你同时输入我的答案,如果我看到你的,我就不会提交了:-p..但是是的,任何一个都可以。
【解决方案3】:

您还可以使用 php strtotime 函数将其转换为 datetime 对象,然后使用其上的 format 方法来获得您想要的漂亮表示。这样你就可以输入上午/下午,24 小时或 12 小时,对日期做任何你想做的事情,等等。

$date = strtotime('2000-01-01 08:00:00');
echo $date->format('H:i:s');

【讨论】:

  • 这是实际答案。接受的答案是提问者最终所做的,但不是所问问题的答案。
  • 这个答案似乎是未经检验的废话,只会混淆和误导研究人员。 strtotime() 不产生日期时间对象! 3v4l.org/aY33q 负责任的做法是撤掉这个帖子。
【解决方案4】:

我早该想到这一点...最简单的方法是使用 MySQL TIME() 函数首先只选择时间。

【讨论】:

    【解决方案5】:

    将时间戳解析为str后,可以使用日期,输入需要的时间格式

    date('h:i a', strtotime('2000-01-01 08:00:00'))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-29
      • 2012-05-21
      • 2015-09-17
      • 2022-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多