如何在两个时间戳之间找到百分比

时间:2011-04-19 21:37:51

标签: php timestamp progress-bar

你好人:) 如何获得unix时间戳之间的百分比(我需要将它用于我的进度条)

如果我有例如1303248948和1303252200.我怎样才能发现100%的百分比是多少。

因此,当第一个时间戳接近第二个时间戳时,我的进度条会不断改变宽度。

所以它将是:width =“1%”和width =“2%”等等,直到它达到100%的宽度。

希望有人可以帮助我! ; - )

2 个答案:

答案 0 :(得分:17)

实际上,你需要3张时间戳:

开始印章,当前印章(进度),完成印章

我假设当前标记是当前的time()。在哪种情况下;

$begin= strtotime('-2 weeks');
$now = time();
$end = strtotime('+2 weeks');

$percent = ($now-$begin) / ($end-$begin) * 100;

注意:在上面的示例中,$percent应为50%。

答案 1 :(得分:1)

这实际上是一个非常简单的范围映射问题。给定[a,b]范围内的值 t ,您需要将其映射到[c,d]范围内的等效值。

首先,您需要将 t 映射到范围[0,1]

x =( t - a)/(b - a)

其次,您要将该值 x 映射到范围[c,d]

t' = x *(d - c)+ c

这实际上是一个非常方便的通用方程式,我经常用于解决各种问题,并且记住如何构建它非常方便。