Actionscript Сравнение дат - PullRequest
       25

Actionscript Сравнение дат

8 голосов
/ 21 января 2011

В моем коде Actionscript у меня есть две даты:

var date1:Date = new Date(2011,1,1);
var date2:Date = new Date(2011,1,1);

Это не работает:

var equal:Boolean = date1 == date2;

Из прочитанного я обнаружил, что это рабочая альтернатива, поскольку он просто получает количество миллисекунд от стандартного момента времени.

var equal:Boolean = date1.getTime() == date2.getTime();

Итак, мои вопросы:

  1. Почему нормальный оператор равенства не работает с датами в ActionScript?
  2. ">" и операторы "<" работают нормально, но можно ли им доверять? </li>
  3. Почему они работают, но не оператор равенства?
  4. Есть ли стандартный метод, который я могу использовать при сравнении дат, который просто возвращает -1, 0 или 1 (я понимаю, что могу легко создать свой собственный, но я бы предпочел использовать существующий служебный класс)?

Заранее спасибо.

Ответы [ 2 ]

15 голосов
/ 21 января 2011

Re: # 4

Вы можете использовать функцию ObjectUtil.dateCompare () для получения результатов, которые вы ищете.

mx.utils.ObjectUtil.dateCompare ()

6 голосов
/ 21 января 2011
  1. Поскольку Dates - это объекты (экземпляры класса), а не собственный тип данных, поэтому они всегда будут разными, если это не разные ссылки на один и тот же экземпляр.преобразуется в собственный формат (число) при сравнении (см. преобразования типов ).Не уверен, что он приводится к числу или строке?Обязательно протестируйте
  2. , потому что они не равны;это не один и тот же объект.
  3. Сравнение, которое вы провели (используя getTime ()), - лучшее, что вы можете использовать, я думаю.
...