So are your links coming from random browsers? In other words, how are URLs added to the list? It always helps to know what you are trying to accomplish.
Do you plan to start the first one (for example) with a duration of so many hours or days?
Assuming any of the above is true, you could simply "seed" the first link as a URL with a start time (timestamp) and an expire date and time. Then setup your SQL query to show links where the expire date and time have not been reached. When the next URL comes down the pipe, simply subtract the start time (UNIX_TIMESTAMP() in MySQL I believe) from the expire time, half that time, and then add it to the starttime and you'll have the next Link. You could get the last record by a query such as
$sql = "SELECT MAX(expdate) FROM links";
More input is needed if the assumptions above are false.