Установка объекта даты Javascript на полночь, не основываясь на дате компьютера пользователя - PullRequest
1 голос
/ 15 августа 2011

Мне нужно установить дату и время в 12 часов ночи независимо от даты компьютера пользователя. Я создаю планировщик международных собраний, чтобы компенсировать часовые пояса для проведения собрания.

У меня это работает, но теперь мне нужно кодировать разницу часовых поясов. Если я использую новую дату, она дает мне время на основе компьютера пользователя. Например, у меня восточная часть США. Если я попытаюсь сделать сдвиг часового пояса 6 ноября 2011 года, Javascript / computer вычислит сдвиг часового пояса МОЕГО в 2 часа ночи. Я не хочу этого.

Моя настоящая цель - установить 12 часов в часовом поясе, где будет проходить собрание (скажем, в Афганистане), а затем рассчитать оттуда.

Итак:

  1. Как установить 12 часов ночи, не будучи временем компьютера пользователя?

  2. Можно ли установить 12 часов ночи для определенного часового пояса, не завися от времени компьютера пользователя?

Я должен сделать это с Javascript, так как не задействован код сервера.

Спасибо

Ответы [ 2 ]

2 голосов
/ 15 августа 2011

Как-то так, я бы догадался: new Date(Date.UTC(year, month, day, hour, minute, second))

w3schools Reference

1 голос
/ 15 августа 2011

Чтобы создать полночь в 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()) для создания собственной строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...