You need normalize result by difference from start timestamp to end timestamp.
$percentCompleted = ((time() - $startTimestamp) / ($endTimestamp - $startTimestamp)) * 100;
Of course you can add some protecting against invalid input like time() > $endTimestamp
$percentCompleted = ((min(time(),$endTimestamp) - $startTimestamp) / ($endTimestamp - $startTimestamp)) * 100;