Ошибка Flash Date.getTime? - PullRequest
       7

Ошибка Flash Date.getTime?

1 голос
/ 01 сентября 2011

Я бью стену об этом. Мой сценарий находит разницу в часах между двумя датами, однако ..

var data:Array = ["2011-08-30 11:19:19", "01-09-2011 02"];

var aDate:String = data[0].split(" ")[0];

var dateElements:Array = aDate.split("-");
var date1:Date = new Date();
date1.setDate(int(dateElements[2]));
date1.setMonth(int(dateElements[1])-1);
date1.setFullYear(int(dateElements[0]));
date1.setHours(int(data[0].split(" ")[1].split(":")[0]));

trace("date: " + date1.getDate());
trace("month: " + date1.getMonth());
trace("year: " + date1.getFullYear());
trace("hours: " + date1.getHours());

dateElements = data[1].split(" ")[0].split("-");
var date2:Date = new Date();
date2.setDate(int(dateElements[0]));
date2.setMonth(int(dateElements[1])-1);
date2.setFullYear(int(dateElements[2]));
date2.setHours(int(data[1].split(" ")[1]));

trace("__");
trace("date: " + date2.getDate());
trace("month: " + date2.getMonth());
trace("year: " + date2.getFullYear());
trace("hours: " + date2.getHours());
trace("__");
var elapse:Number = date2.getTime() - date1.getTime();

trace(Math.floor(elapse / 3600000));

Как видите, элементы даты прослеживаются так, как должны. Теперь попробуйте изменить первый элемент массива данных на «2011-08-31 11:19:19». Хотя с элементами даты все в порядке, последняя трассировка дает совершенно странное значение. Что еще более странно, так это то, что при повторной компиляции этого скрипта во Flash IDE компиляция занимает много времени, а затем ничего не отслеживается, как если бы скрипт отключился.

Что здесь происходит?

1 Ответ

1 голос
/ 01 сентября 2011

Если вы установите месяц до того, как установите дату (день), он должен дать правильный результат.По умолчанию при создании объекта Date время устанавливается на локальную (операционную систему) дату.Сейчас сентябрь, и он содержит только 30 дней, поэтому, когда вы устанавливаете дату на 31, она автоматически преобразуется в 1. Если вы определили месяц как август, он должен принять значение 31.И чтобы избежать февральских проблем, было бы неплохо поставить год на первое место.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...