根据两个时间戳的当前时间计算百分比?

时间:2015-03-20 12:27:52

标签: php

我尝试获取两个时间戳的百分比:$startTime$endTime其中:

$startTime是事件的开始日期

$endTime是结束日期

需要计算从$currentTime$endTime的时间百分比。 为此我做了:

function leftTimeCampaign($startTime, $endTime)
{
    $currentTime = time();

    if (($startTime < $currentTime) && ($currentTime < $endTime)) {
        return (100 * ($startTime - time())) / ($startTime - $endTime);
    }

    return 0;

}

1 个答案:

答案 0 :(得分:3)

(Current - Start) / (End - Start)

我建议您按原样使用此值(0..1范围)进行进一步操作/存储,并在显示时仅将其乘以100。

我还建议如果你的前提条件是假的,你不要简单地返回“0”。更明确的是,如果Start&gt; End然后返回值域之外的值(例如-1)以表示错误,使用其他错误报告机制(例如异常)或简单地将该情况声明为未定义的行为(这是完全正常的,只需添加一个assert()要求明确表示。如果Current&gt; End,根据您的情况,您可能希望将1作为特殊情况返回。

修改要获得剩余的相对时间,只需采取相反的措施:

1 - (Current - Start) / (End - Start)

百分比:

100 * (1 - (Current - Start) / (End - Start))