转换输入然后比较它并以新的形式显示结果

时间:2014-09-04 07:59:23

标签: php

 _________________________________________________________
|What i must | the value format stored | the result must |
|   type     |      in data base       |   be shown      |
 _________________________________________________________

|  8.30     |            8.5           |     8.30        |
|_________________________________________________________

我正在使用php搜索页面,我想将sexagesimal(8.30,我输入)的结果转换为十进制(8.5),以便将其与数据库中的值进行比较,然后将它们显示为sexagesimal(8.30,因为我第一次输入)而不是十进制(8.5,这是我的数据库中保存的值) 因此,如果有直接查询我可以用来获取我的搜索 顺便说一句我无法将我的数据库字段的类型更改为TIME,因为我将其保存为VARCHAR以比较值,因为我正在尝试构建一个考勤系统

2 个答案:

答案 0 :(得分:1)

将六进制转换为十进制

function convertToDecimal($sexagesimalTime)
{
    if (!empty($sexagesimalTime)) {
        $hms = explode(":", $sexagesimalTime);
        $hours = $hms[0];
        $minutes = $hms[1];
        $decimalTime = $hours + round($minutes / 60, 2);
        return $decimalTime;
    } else {
        $decimalTime = '';
    }
    return $decimalTime;
}

答案 1 :(得分:0)

将sexagesimal转换为十进制

<?php
$sexagesimal = 8.30;
$hour = explode(".",$sexagesimal);
$minutes = $sexagesimal - $hour[0];
$decimalminutes = ($minutes/60)*100;
$decimal = $hour[0] + $decimalminutes;
echo $decimal;
?>

将sexagesimal转换为十进制

<?php
$decimal = 8.5;
$hour = explode(".",$decimal);
$minutes = $decimal - $hour[0];
$sexagesimalminutes = ($minutes/100)*60;
$sexagesimal = $hour[0] + $sexagesimalminutes;
echo $sexagesimal;
?>