Thanks guys. You both hit on my problems.
'timezone' => 'America/Toronto' in the config/app.php file was the solution.
I didn't mention it but the time was also off by a fraction of an hour rather than exactly 4 hours. This was caused by using m for minutes in the date function rather than i. Thus I was displaying the month not the minutes.
It is all good now. Thanks again.