将<输入类型= "time" >值(作为持续时间)转换为小时数 JS/PHP



>我有一个数据库表,其中一个字段 - "持续时间" - 是 FLOAT 类型而不是时间,即 3.5 小时而不是"03:30:00"。这样做是出于数据库性能原因和易于编程。出于 UI 原因,我正在将我的前端表单字段更新为

<input id="duration" type="time">

生成 TIME 格式的值。有没有将时间转换为浮点数的速记方法?

到目前为止,我在想类似的事情

function timeToFloat(){
    var buff = $('#duration').val().split(':'); //to array
    buff.pop(); //remove seconds
    return parseInt(buff[0]) + parseFloat( buff[1] / 60 ).toFixed(2);
}

在 JS 或 PHP 中:

function timeToFloat( $duration ){
     $duration = explode(":", $duration);
     array_pop($duration);
     return $duration[0] + numberFormat( $duration[1] / 60, 2 );
}

有人知道得更好吗?

只需在MySql中执行此操作即可

SELECT TIME_TO_SEC('03:30:00')/3600; 3.5000

最新更新