Временные зоны и GMT

По международному соглашению земной шар разделен на временные зоны, или часовые пояса. Это позволяет жителям каждой зоны считать, что солнце находится в зените при­мерно в полдень. Текущее время зоны называется локальным временем. Именно оно и ус­танавливается на наших обычных часах и часах компьютера.

Международным соглашением введена универсальная точка отсчета для времени. Этой точ­кой является “среднее” время по Гринвичу (Greenwich Mean Time или GMT), относительно которого локальное время в любой временной зоне вычисляется посредством добавления или вычитания определенной поправки. Сейчас для GMT существует еще одна аббревиатура — UTC. Она не имеет точной расшифровки ни на одном языка мира, но ее английская версия звучит так — Coordinated Universal Time (Всеобщее скоординированное время).

В операционной системе Windows при установке времени вы также задаете временную зо­ну. Таким образом, при необходимости, в любой момент может быть вычислено текущее время UTC.

Перечисленные выше методы объекта Date работают с локальным временем. Однако существует масса случаев, когда может понадобиться работать в сценарии со временем UTC. Например, пользователь вашего Web-pecypca заполняет форму заказа. А вам нужно, чтобы при ее отправке вместе с данными были отправлены также дата и время ее заполнения. Но при этом вас скорее всего будет интересовать время отправки формы не по времени этого пользователя, а по вашему времени.

Наиболее простой способ вычисления времени UTC состоит в использовании метода getTimezoneOffset (), возвращающего величину смещения часового пояса в минутах шя локального времени (установленного на компьютере пользователя) относительно времени по Гринвичу (для Netscape Navigator) или универсального времени (для Internet Explorer). Например, после выполнения следующих инструкций локальное время в объекте today будет переведено во время UTC:

var today = new Date()

var offset = today.gwtTimezoneOffset()

today.setMinutes(today.getMinutes () +offset)

Также существуют и специальные методы объекта Date для работы со временем UTC. Они имеют такие же названия, как и описанные выше, только между приставкой get (или set) и остальной частью имени метода должна быть вставлена аббревиатура UTC. Например, метод getUTCMonth () позволяет определить месяц UTC, а метод setUTCMinutes () — установить минуты UTC. При этом, конечно, в одном объекте Date не содержится двух отдельных дат, т.е. все изменения, внесенные в локальное время, отразятся на времени UTC и наоборот.

Объект Data имеет следующие методы для извлечения и установки элементов даты и времени для универсального времени:

  • getUTCDate — возвращает день месяца (число) для выбранной даты по универсальному времени;
  • getUTCDay — возвращает день недели для выбранной даты по универсальному времени;
  • getUTCFullYear — возвращает год для выбранной даты по универсальному времени;
  • getUTCHours — возвращает часы для выбранной даты по универсальному времени;
  • getUTCMilliseconds— возвращает миллисекунды для выбранной даты по универсальному времени;
  • getUTCMinutes — возвращает минуты для выбранной даты по универсальному времени;
  • getUTCMonth — возвращает месяц для выбранной даты по универсальному времени;
  • getUTCSeconds — возвращает секунды для выбранной даты по универсальному времени;
  • setUTCDate — устанавливает день месяца для выбранной даты по универсально­му времени;
  • setUTCFullYear — задает полный год для выбранной даты по универсальному времени;
  • setUTCHours — устанавливает часы для выбранной даты по универсальному времени;
  • setUTCMilliseconds — определяет миллисекунды для выбранной даты по уни­версальному времени;
  • setUTCMinutes — устанавливает минуты для выбранной даты по универсально­му времени;
  • setUTCMonth — задает месяц для выбранной даты по универсальному времени;
  • setUTCSeconds — определяет секунды для выбранной даты по универсальному времени;
  • UTC — возвращает количество миллисекунд в объекте Date с 00:00:00 1 января 1970 года.

Все методы, касающиеся универсального времени, появились в версии JavaScript 1.3. Методы для работы с универсальным временем полностью аналогичны методам для ра­боты с локальным временем. Исключение составляет метод UTC.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: