Нельзя.
Первая проблема этой реализации в том, что во-первых, в минуте может быть не 60000 миллисекунд.
https://ru.wikipedia.org/wiki/%D0%A1%D0%B5%D0%BA%D...
Вторая в том, что мы прибавляем к
UTC (new Date) время в часах (3600000), а потом получаем время для
текущей (toLocaleString) временной зоны, а не для той, для которой мы считаем время. Если у человека, который запускает этот код в этот диапазон попадёт переход на зимнее-летнее время, то результат она выдаст неправильный, так как Date сконвертирует даты для текущей локали, а не для той, смещение для которой передали.
И более того - нельзя вообще указывать смещение относительно UTC в часах именно из-за зимнего-летнего времени, обязательно нужно знать страну и город. Переходы на зимнее-летнее время - это вообще дичь какая-то, для каждого города могут быть свои собственные правила перевода часов, которые, к тому же, периодически меняются. Поэтому в операционных системах таскают с собой огромные справочники для правильного вычисления локального времени.
Вот, для примера, что в одной только России творилось со временем за последние 100 лет:
https://www.worldtimezone.com/dst_news/dst_news_ru...
Предложенная функция почти всегда она будет возвращать правильный результат, но иногда будет ошибаться. Поэтому зависит от целей использования. Для финансовой документации её использовать нельзя. А для вывода текущего времени на сайте - почему бы и нет.