Получение времени строго в PST не имеет особого смысла, так как почти половина года PST не наблюдается в часовом поясе Тихого океана. PST (UTC-8) наблюдается зимой, а летом - PDT (UTC-7). Вы не можете представлять Pacific Time как фиксированное смещение, и если это не будет вашим собственным местным часовым поясом, вы не можете легко определить переход между ними без базы данных часового пояса. См. the timezone tag wiki.
Также date.js has been abandoned. Я не могу рекомендовать какое-либо решение, которое продолжает его использовать. Поддержка метода setTimezone
, предложенного Dancrumb, является специфической для культуры, и она по-прежнему не учитывает летнее время.
Вместо этого, я рекомендую попробовать moment.js. Вы можете использовать дополнение moment-timezone для работы с зоной America/Los_Angeles
, что является хорошим примером американского тихоокеанского времени. Убедитесь, что файл moment-timezone-data.js
содержит по крайней мере эту зону. После этого вы можете сделать следующее:
var m = moment().tz('America/Los_Angeles').day(7).startOf('day');
var s = m.toISOString(); // if you need a string output representing UTC
var dt = m.toDate(); // if you need an actual JavaScript Date object
Давайте разберем, что вниз немного.:
moment()
получает текущее время
tz('America/Los_Angeles')
регулирует время в часовом поясе вы заинтересованы в
day(7)
продвигается до следующий Понедельник.
startOf('day')
Захватывает время до полуночи.
Вам нужно использовать время локального компьютера? Это может быть более точной и простой для вас - если вы можете использовать сервис общественного времени, который, вероятно, может дать вам время в UTC. Вы делаете запрос GET службе, и ответ json, скорее всего, содержит строку даты javascript. – Ringo
PST означает тихоокеанское стандартное время? – Dancrumb