所以我有几个包含工作时间的HTML字段。例如,用户可以输入08:15
(应该给我8.25
)和12:30
(应该给我12.5
)。
如何做到这一点?我想的是1970年1月1日的开始日期,增加了它的小时数,将其转换为时间戳,然后进行其他数学计算,但我不确定这是否正确,我甚至可能忽略了一些(显而易见的) )功能。
答案 0 :(得分:2)
<?php
$string = "08:15";
$items = explode(":",$string);
$hours = intval($items[0]);
$minutes = intval($items[1]);
$decimalhours = $hours + ($minutes / 60);
echo $decimalhours;
这段代码并不强大,因为当用户不遵守您要求的严格语法时,它会失败。然而,它应该指出你正确的方向。
答案 1 :(得分:2)
这不是那么棘手,所以你可以这样做:
<?php
header('Content-Type: text/plain');
list($hours, $minutes) = explode(':', '12:30');
$hours += $minutes / 60;
echo $hours;
?>
编写自己的函数:
<?php
header('Content-Type: text/plain');
function time2dec($time, $delimiter = ':'){
list($h, $m, $s) = array_pad(explode($delimiter, $time), 3, 0);
return $h + $m / 60 + $s / 3600;
}
echo time2dec('12:30'), PHP_EOL;
echo time2dec('12:15'), PHP_EOL;
echo time2dec('12:15:15'), PHP_EOL;
echo time2dec('12:a:15'), PHP_EOL;
?>
节目:
12.5
12.25
12.254166666667
12.004166666667
答案 2 :(得分:2)
我会告诉你如何计算它(期待你编码:D)
x
现在您的结果将是y= 5/3 * x
举个例子,如果是8:15,那么就是
x = 15
y = 5/3 * 15 = 25
所以结果是8.25