【问题标题】:subtract from hour not in time format in php在php中从小时而不是时间格式中减去
【发布时间】:2012-09-04 18:16:55
【问题描述】:

我得到了这种格式的时间:“192:40” 192 = 小时,40 = 分钟。

假设我想减去“02:30”小时,所以答案将是“190:10”..

有什么办法吗? 谢谢!

【问题讨论】:

  • 我不知道如何在 PHP 中执行此操作,我曾在 mysql 中执行过一次...

标签: php time subtraction


【解决方案1】:

使用explode() 分隔小时/分钟部分,然后自己计算:

list( $hour, $min) = explode( ':', "192:40");
list( $hour_sub, $min_sub) = explode( ':', "02:30");
$result = ($hour - $hour_sub) . ':' . ($min - $min_sub);
echo $result;

这个will print

190:10

如果时间倒流,($min - $min_sub) 将是负数。为了解决这个问题,可以使用以下方法:

list( $hour, $min) = explode( ':', "192:40");
list( $hour_sub, $min_sub) = explode( ':', "02:30");
$hour = $hour - $hour_sub;
$min  = $min  - $min_sub;
if( $min < 0) {
    $min = 60 + $min; // Note $min is negative
    $hour--; // Decrement hour
}
$result = $hour . ':' . $min;

【讨论】:

  • 为什么不建议使用 mktime() 和/或 DateTime,而不是一些疯狂的从头开始的数学运算?
  • 对我来说似乎很简单直接?
猜你喜欢
  • 2023-04-07
  • 2013-04-11
  • 2011-07-24
  • 2016-11-17
  • 1970-01-01
  • 2018-03-06
  • 2018-10-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多