Указатель NULL
- это тот, который указывает на никуда. Когда вы разыскиваете указатель p
, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p
является нулевым указателем, местоположение, хранящееся в p
, является nowhere
, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception
.
В общем, это потому, что что-то не было правильно инициализировано.
Это потому, что во втором случае сравниваются фактические объекты даты, а два объекта никогда не равны друг другу. Поверните их в число:
alert( +startDate2 == +startDate3 ); // true
Если вы хотите более простое преобразование в число, используйте либо:
alert( startDate2.getTime() == startDate3.getTime() ); // true
, либо
alert( Number(startDate2) == Number(startDate3) ); // true
Oh , ссылка на спецификацию: §11.9.3 Алгоритм сравнения абстрактного равенства , который в основном говорит при сравнении объектов, obj1 == obj2
является истинным, только если они относятся к одному и тому же объекту, иначе результат будет ложным.
вы можете сравнить фактические миллисекунды:
alert(startDate2.getTime() === startDate3.getTime());
Вам не нужно использовать метод getTime - вы можете вычесть объект даты из другого объекта даты. Он будет возвращать разницу в миллисекундах (отрицательная, если вторая - более поздняя дата)
var startDate1 = new Date("02/10/2012");
var startDate2 = new Date("01/10/2012");
var diff= (startDate1 -startDate2)
// оценивается в 0, если даты имеют одинаковую метку времени
Сравнение дат, использующих getTime()
, возвращающее число миллисекунд из эпохи (т. е. число):
var startDate1 = new Date("02/10/2012");
var startDate2 = new Date("01/10/2012");
var startDate3 = new Date("01/10/2012");
alert(startDate1.getTime() > startDate2.getTime()); // true
alert(startDate2.getTime() == startDate3.getTime()); //true
Также рассмотрите использование конструктора Date
с использованием явного числа year / month / date, а затем полагаясь на строковое представление (см. Date.parse () ). И помните, что даты в JavaScript всегда отображаются с использованием часового пояса клиента (браузера).
Date.prototype.getTime
всегда будет возвращать Number ... – CMS 30 September 2011 в 08:25getTime
лучше всего для ясности (и, как оказалось, это самый быстрый вариант в проверенных мной браузерах). – RobG 14 January 2013 в 07:30