Ci sono vari modi per gestire le date.

time() ritorna i secondi trascorsi dal 1 gennaio del 1970. Gestire i secondi è più facile che gestire tanti numeri che formano una data.

C'è una funzione in PHP che ti permette di convertire una data in formato "Y-n-j H:i:s" nel timestamp (così si chiama i secondi dal 1970).
Una volta che hai secondi guardi se time() meno quel timestamp è maggiore a 1800 secondi.

Non ti posso dire tutte le funzioni. www.php.net ha una vasta documentazione.

Io ti ho indicato la strada, sei tu che la devi imboccare.

Ciao