你好人:) 如何获得unix时间戳之间的百分比(我需要将它用于我的进度条)
如果我有例如1303248948和1303252200.我怎样才能发现100%的百分比是多少。
因此,当第一个时间戳接近第二个时间戳时,我的进度条会不断改变宽度。
所以它将是:width =“1%”和width =“2%”等等,直到它达到100%的宽度。
希望有人可以帮助我! ; - )答案 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
这实际上是一个非常方便的通用方程式,我经常用于解决各种问题,并且记住如何构建它非常方便。