我试过爆炸时间,在"之前和之后使用零件:"最小的成功。我通过XML Feed接收这两个时间,因此我可以根据需要转换我收到的字符串,或者将它们乘以另一个数字以便根据需要使用。
$time_1 = "00:59.8408";
$time_2 = "01:00.4734";
$difference = $time_2 - $time_1;
或另一种计算差异的方法,应该给我回复
0.6326
我很乐意接受任何建议。我已经尝试减去strtotime转换变量,我已经如上所述爆炸了不良结果的字符串。我相信,毫秒也是我过去没有用过的障碍。
感谢您阅读本文。
答案 0 :(得分:1)
PHP中的减号运算符仅适用于数字。您的字符串将转换为数字,然后是1 - 0,因此差异为1:
$time_1 = "00:59.8408";
$time_2 = "01:00.4734";
$difference = $time_2 - $time_1;
var_dump($difference); # int(1)
而是编写一个函数,将字符串转换为秒,就像本例中的浮点数一样:
/**
* convert time string to seconds
*
* @param string $time %i:%s.%u
* @return float
*/
function time_to_seconds($time) {
sscanf($time, '%d:%f', $minutes, $seconds);
return $minutes * 60 + $seconds;
}
这很简单:首先扫描字符串中的数字,然后是冒号,然后是浮点数。由于第一个数字是分钟数,所以将它们乘以60并将秒数加上浮点数(一分钟为60秒)。返回结果(没有错误检查,请参阅sscanf
将其转换为生产代码。
然后用结果进行操作:
$difference_in_seconds = time_to_seconds($time_2) - time_to_seconds($time_1);
var_dump($difference_in_seconds); # double(0.6326)
就是这样。最重要的部分是您需要知道如何处理字符串中编码的数据。根据那个解析字符串。