时间戳之间的百分比增加或减少

时间:2015-09-15 16:05:35

标签: php time percentage

这应该更容易解决或谷歌答案,但我不能做得好。可能是我被困住了:

这就是我的尝试:

$now = time();

// i.e Improve police arriving time from 15 mins to 10 mins
$array_ini = explode(':',$ini_value); // "00:15:00" in my example (15 mins)
$array_desired = explode(':',$desired_value); // "00:10:00" in my example

$ini = $now-mktime($array_ini[0],$array_ini[1],$array_ini[2]);
$des = $now-mktime($array_desired[0],$array_desired[1],$array_desired[2]);

$percent = (1-$ini/$des)*100;

但我得到的只是.47%的改进,我的逻辑说它确实提高了33%。 我做错了什么?

3 个答案:

答案 0 :(得分:1)

处理会议记录要容易得多:

$ini_mins = 15;
$desired_mins = 10;

$improvement_mins = $ini_mins - $desired_mins;
$percent = ($improvement_mins / $ini_mins) * 100;

print_r($percent);

答案 1 :(得分:0)

正如莱恩在回答中所说的那样,确实是直截了当且更容易处理分钟。

但是要添加它,你做错了什么 - 你将从2015年9月15日19:00的unix时间中扣除1970年1月1日00:10:00和1970年1月1日00:15:00的unix时间: 00。当然,这两个数字之间的百分比差异很小。你正在做这样的事情

num1 = 100000 - 10
num2 = 100000 - 15

百分比num1 / num2 错误查找10到15之间的百分比差异的方法;而且它将远小于33%。

您有代码错误。该数组称为$ array_desired,但您在mktime中引用$ array_des。

答案 2 :(得分:0)

确定。我想阿米特打开了我的脑海。 基于他的评论,我发布了正确答案:

// This line is not needed any more
//$now = time();

// i.e Improve police arriving time from 15 mins to 10 mins
$array_ini = explode(':',$ini_value); // "00:15:00" in my example (15 mins)
$array_desired = explode(':',$desired_value); // "00:10:00" in my example

// Time must to be based on Jan, 1 1970
// Hours are from 1 to 23, so must be increased by 1
$ini = mktime($array_ini[0]+1,$array_ini[1],$array_ini[2],1,1,1970);
$des = mktime($array_desired[0]+1,$array_desired[1],$array_desired[2],1,1,1970);

$percent = (1-$des/$ini)*100;
相关问题