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

Php 如何找到两个时间戳之间的百分比,php,timestamp,progress-bar,Php,Timestamp,Progress Bar,大家好:) 如何获取到unix时间戳之间的百分比(我需要将其用于进度条) 如果我有例如1303248948和1303252200。我怎样才能知道100%中的百分比是多少 因此,当第一个时间戳接近第二个时间戳时,我的进度条可以不断更改宽度 所以它将是:width=“1%”和width=“2%”等等,直到它的宽度达到100% 希望有人能帮助我!;-) 实际上,您需要3个时间戳: 开始戳记、当前戳记(进度)、完成戳记 我假设当前戳是当前的time()。在这种情况下 $begin= strtotime(

大家好:) 如何获取到unix时间戳之间的百分比(我需要将其用于进度条)

如果我有例如1303248948和1303252200。我怎样才能知道100%中的百分比是多少

因此,当第一个时间戳接近第二个时间戳时,我的进度条可以不断更改宽度

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


希望有人能帮助我!;-)

实际上,您需要3个时间戳:

开始戳记、当前戳记(进度)、完成戳记

我假设当前戳是当前的
time()
。在这种情况下

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

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

注意:在上面的例子中,
$percent
应该是50%。

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

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

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

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

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


这实际上是一个非常方便的通用公式,我经常使用它来解决各种问题,记住如何构造它非常方便。

进度条的起点是什么?零?编辑:如果1303252200代表100%,那么什么值代表0%?谢谢Christian,这正是我需要的!:)欢迎如果对您有足够帮助,请不要忘记标记为答案。请注意:$end中的strotime()有一个额外的“t”(我无法编辑,因为它少于6个字符)。Christian在5分钟前给了我一个非常好且有用的答案,但感谢您的时间,Kevin!:-)进一步解释:
x=(t-a)/(b-a)
position=(now-begin)/(end-begin)和
t'=x*(d-c)+c
=>
percent=position*(100-0)+0