As you may know it's highly recommended by WordPress to theme/plugin authors to don't change the WordPress timezone by PHP functions like date_default_timezone_set.
I addition to that you may receive wrong date and time values when you use php date function because of not setting default timezone by PHP.
I mean you may receive 10 for date('G')
while the exact hour is 15 in the selected timezone in WordPress->Settings->General->Timezone option.
So what should you do if you need the correct date and time values in selected timezone for WordPress website?
You should use current_time function of WordPress instead of PHP date function for getting local date and time in WordPress. It will return correct value for you based on selected timezone in WordPress general options.
For me
current_time('G')
returns exactly 15 while PHPdate('G')
returns 10 which is not correct.Hope it helps somebody since I didn't find related thread in the stackoverflow.