Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 将日期HH:MM转换为数值_Php_Jquery_Date - Fatal编程技术网

Php 将日期HH:MM转换为数值

Php 将日期HH:MM转换为数值,php,jquery,date,Php,Jquery,Date,因此,我有两个包含工作时间的HTML字段。例如,用户可以输入08:15,该值为8.25,输入12:30,该值为12.5 如何做到这一点?我想把开始日期定为1970年1月1日,加上小时数,把它转换成时间戳,然后再做其他的计算,但我不确定这是不是正确的方法,我甚至可能忽略了一些明显的功能 <?php $string = "08:15"; $items = explode(":",$string); $hours = intval($items[0]); $minutes = intval(

因此,我有两个包含工作时间的HTML字段。例如,用户可以输入08:15,该值为8.25,输入12:30,该值为12.5

如何做到这一点?我想把开始日期定为1970年1月1日,加上小时数,把它转换成时间戳,然后再做其他的计算,但我不确定这是不是正确的方法,我甚至可能忽略了一些明显的功能

<?php

$string = "08:15";

$items = explode(":",$string);
$hours = intval($items[0]);
$minutes = intval($items[1]);

$decimalhours = $hours + ($minutes / 60);
echo $decimalhours;

这段代码绝对不是健壮的,因为当用户不遵守您要求的严格语法时,它会失败。尽管如此,它应该为您指明正确的方向。

它并没有那么棘手,所以您可以这样做:

<?php
header('Content-Type: text/plain');

list($hours, $minutes) = explode(':', '12:30');

$hours += $minutes / 60;

echo $hours;
?>

我将告诉您如何计算它,希望您编写代码:D

设MM部分为x 现在的结果是y=5/3*x

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


那么mins+secs/60呢?将HH:MM更改为数值的目的是什么?有jquery和php标记,但有疑问的是,我看不出您要用哪种语言进行解析,这没有任何意义。结果值必须在此处强制转换为隐式浮动,才能按要求工作。+1表示intval,尽管使用列表$hours、$minutes=@PhpMyCoder表示intval时爆炸会更清晰一些?如果你不介意的话,我可以看看密码吗?@你的常识我想你误解了。我的意思是不用$items=explode':',$string;然后用$items[0]表示小时,用$items[1]表示分钟,用list$hours,$minutes=explode':',$string的含义会更清楚@PhpMyCoder如果您没有注意到的话,您只是让代码变得更复杂了
<?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