【问题标题】:Convert String to time in PHP [duplicate]在PHP中将字符串转换为时间[重复]
【发布时间】:2014-07-16 12:30:22
【问题描述】:

我从数据库中获取字符串数据 数据格式如:

07:00:00.0000000

这意味着早上 7:00。 如何将此字符串转换为日期类型以进行比较。 因此,我可以获得2个数据。比如

Start:
07:00:00.0000000
End:
16:30:00.0000000

经过时间比较,我可以得到9.3这样的答案。

【问题讨论】:

  • 如何从中提取日期?
  • 您的意思是date and time 吗?

标签: php time


【解决方案1】:

你可以使用strtotime

$start = strtotime("07:00:00.0000000");
$end   = strtotime("16:30:00.0000000");

$difference = $end - $start;

或者使用 DataTime 对象:

$start = new DateTime("07:00:00.0000000");
$end   = new DateTime("16:30:00.0000000");

$interval   = $start->diff($end);
$difference = $end->getTimestamp() - $start->getTimestamp();

然后echo结果:

echo $difference;            // in seconds
echo $difference / 60;       // in minutes
echo $difference / 3600;     // in hours

echo $interval->format('%s') // in seconds

这取决于您的喜好。我还建议您查看this post 了解两种解决方案的性能。

【讨论】:

  • 投反对票的人能解释一下自己吗?
  • 我没有投反对票,但我只能猜测这是因为您选择使用 strtotime 而不是 PHP 的 DateTime 对象。
  • 好吧,我觉得这里没有必要使用对象,但无论如何,我编辑添加了一个使用DateTime对象的示例。
  • 提示:如果您使用的是 DateTime 对象,请查看 diff 函数 :) php.net/manual/en/datetime.diff.php
  • @Duroth 你是对的,以防万一,我编辑添加了一个例子。
猜你喜欢
  • 2013-10-21
  • 2017-01-18
  • 2021-05-12
  • 1970-01-01
  • 1970-01-01
  • 2016-11-27
  • 2020-03-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多