Basically this whole time stuff is frustrating me, I am new to programming so I do apologise if I am asking a stupid question.
I have a MySQL time() stored in my databas
strtotime converts it to a unix time stamp. It DOES NOT represent six hours. It represents 6AM today. You should work with seconds:
$duration = '06:00:00';
$duration_array = explode(':', $duration);
$length = ((int)$duration_array[0] * 3600) + ((int)$duration_array[1] * 60) + (int)$duration_array[2];
$target = $length + time();