Чтобы создать полночь в GMT:
// Note: months are 0-based, so 7 == august
var midnight = new Date( Date.UTC(2011,7,15) );
// Sun Aug 14 2011 18:00:00 GMT-0600 (Mountain Daylight Time)
Чтобы создать полночь в другом часовом поясе:
var mdt = -6; // Mountain Daylight Time
var midnightMDT = new Date( Date.UTC(2011,7,15,-mdt) );
//-> Mon Aug 15 2011 00:00:00 GMT-0600 (Mountain Daylight Time)
Объекты даты выражаются в местном часовом поясе пользователя, но онивсе еще представляют полночь в другом часовом поясе.
Если вы хотите выразить дату в другом часовом поясе, вам нужно сместить дату в этот часовой пояс (setUTCHours()
), а затем использовать различные getUTC* методы (например, getUTCHours()
) для создания собственной строки.