将日期HH:MM转换为数值

时间:2013-06-18 11:14:19

标签: php jquery date

所以我有几个包含工作时间的HTML字段。例如,用户可以输入08:15(应该给我8.25)和12:30(应该给我12.5)。

如何做到这一点?我想的是1970年1月1日的开始日期,增加了它的小时数,将其转换为时间戳,然后进行其他数学计算,但我不确定这是否正确,我甚至可能忽略了一些(显而易见的) )功能。

3 个答案:

答案 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)

  1. 让MM部分为x
  2. 现在您的结果将是y= 5/3 * x

    举个例子,如果是8:15,那么就是 x = 15
    y = 5/3 * 15 = 25
    所以结果是8.25