Мой рецепт, хранить в базе Unix Timestamp, time() - чтобы получить Unix timestamp в php. Но если так случилось что в базе дата хранится в формате date time, есть два способа это исправить, либо сделать запрос к базе с функцией конвертации SELECT UNIX_TIMESTAMP(dateTimeFieldName), либо воспользоваться функцией php strtotime($mysqltime) для конвертации в Unix timestamp.
PS:
"...отсчитать определённое время, например 30 минут чтобы сделать определённое действие..."
if($date < date("Y-m-d H:i:s", time() - 1800) ) {
// Ранее 1800 сек от текущего времени
}
или:
if(strtotime($date) < (time() - 1800) ) {
// Ранее 1800 сек от текущего времени
}