After what seemed like an eternity trying to get my head around adding and subtracting timezone offsets, I finally came across PHP's DateTime class.
Basically, you create an instance of the DateTime class using a date, and the timezone that the date is in. In my case, I just wanted to modify the time to UTC for storage to a dataase
Then, you set the timezone you want to modify the time to.
Finally you can get that time in whatever format you want.
$date = new DateTime('19:30:00'), new DateTimeZone('America/Denver'));
$queue_time = $date->format('H:i:s');
You can read more about it here: http://www.php.net/manual/en/datetime.settimezone.php
I think those three lines removed about 10 lines of my crazy timezone math that was doing my head in. Saved me hours and hours of trying to perfect my timezone math. I hope you find it useful.