Функция getTime () Javascript показывает неверные значения? - PullRequest
1 голос
/ 28 марта 2012

Я что-то упустил, но не могу найти подсказки в Интернете.Когда я использую функцию getTime () Javascript, кажется, что она не учитывается с 1970, 01, 01, 0, 0, 0, 0, т.е. с полуночи 1970 года, а с 1969, 12, 01, 1, 0, 0, 0

.

Я настроил следующее:

var d = new Date(1970, 01, 01, 0, 0, 0, 0);
alert(d.getTime());

с мыслью, что я должен получить 0 (так как время не прошло).Но я получаю 2674800000 мсек

Если я установлю:

var d = new Date(1969, 12, 01, 1, 0, 0, 0);
alert(d.getTime());

, получу 0 мсек

Я играл с функцией также на сайте W3C, и результат тот же.

Также, когда я вычисляю разницу между двумя датами - сейчас и в начале этого года, он не возвращает правильное значение:

var Now = new Date ();
var Begin = new Date (Now.getFullYear(), 01, 01);
var dif = Now.getTime() - Begin.getTime();
alert(dif);

Я получаю миллисекунды, которые соответствуют прибл.59 дней

Я совершенно уверен, что что-то не вижу, так как я все еще занимаюсь программированием.Я ценю любые комментарии

1 Ответ

2 голосов
/ 28 марта 2012

У вас есть две ошибки, которые вместе вызывают ошибку, которую вы видите.Во-первых, месяц индексируется с нуля, поэтому январь соответствует 0 (как вы можете видеть из примера здесь для их примера от 14 января 2010 года).Во-вторых, ваш браузер настроен на определенное время, что вызывает ошибку.Я в PST, вот что я получаю.

a = new Date("January 1, 1970")
  Thu Jan 01 1970 00:00:00 GMT-0800 (PST)
a = new Date("January 1, 1970 GMT")
  Wed Dec 31 1969 16:00:00 GMT-0800 (PST)
a.getTime()
  0
...