>> 'Функция времени работает не верно'
Orly?
>> 'но тем не менее, он разве не должен выдавать время совпадающие с Москвой?'
Кто он? PHP? Ну да, для Москвичей же создавался.
В общем, сначала нужно объявить дефолтную временную зону:
date_default_timezone_set('Europe/Moscow');