2012-03-28 2 views
1

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

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

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 дней

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

ответ

2

У вас есть две ошибки, которые вместе вызывают ошибку, которую вы видите. Сначала месяц индексируется нулем, поэтому январь соответствует 0 (как вы можете видеть из примера here для примера 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 
+0

Благодарим за быстрый и конструктивный ответ! Я знал, что это должно быть что-то такое основное :) У меня было ощущение, что разница в часах происходит из-за часового пояса, но разница в объявлении месяца как имени или номера просто не пришла ко мне. Привет, помощник – vucibatina

Смежные вопросы