Php 从时间字符串变为双精度字符串
我让我的网站用户在00:00-23:59时间文本输入中填写时间。然后我将其解析为双精度(例如,他们输入2:30,它将变为2.30)。我如何将这些时间改为实际双打。说2:30->2.50,1:45->1.75等等。。。我一直在思考这个问题,我觉得答案很简单,但我似乎想不起来Php 从时间字符串变为双精度字符串,php,time,double,Php,Time,Double,我让我的网站用户在00:00-23:59时间文本输入中填写时间。然后我将其解析为双精度(例如,他们输入2:30,它将变为2.30)。我如何将这些时间改为实际双打。说2:30->2.50,1:45->1.75等等。。。我一直在思考这个问题,我觉得答案很简单,但我似乎想不起来 谢谢大家! 下面的函数“convertTime”怎么样?这对你有用吗 class TimeTest extends \PHPUnit_Framework_TestCase { function test_convertT
谢谢大家! 下面的函数“convertTime”怎么样?这对你有用吗
class TimeTest extends \PHPUnit_Framework_TestCase
{
function test_convertTime()
{
$this->assertEquals(23.0,convertTime(23.00));
$this->assertEquals(23.5,convertTime(23.30));
$this->assertEquals(23.17,round(convertTime(23.10),2));
$this->assertEquals(24.0,convertTime(23.60));
}
}
function convertTime($time){
$secondsPart = ($time - floor($time))*100;
if($secondsPart == 0){
return $time;
}
$secondsPartAsFraction = 60/$secondsPart;
$inDecimal = 100/$secondsPartAsFraction;
return floor($time)+($inDecimal/100);
}
首先,您的范围比一天多一秒,即00:00-23:59。第二,你想做什么?23:30应该是多少?你把约会和双人约会混在一起,这很奇怪。你应该从00:00开始得到秒,这更容易做到。@Samuel是对的,这里有些奇怪的事情。还要注意用户:像您正在询问的文本输入非常复杂,因此您会有很多错误。这可能更像是用户体验的问题,但无论如何…@samual 23:30应该是23.50。是的,我的日子是00:00-23:59。