我尝试获取两个时间戳的百分比:$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;
}
答案 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))