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?