Я бью стену об этом. Мой сценарий находит разницу в часах между двумя датами, однако ..
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 компиляция занимает много времени, а затем ничего не отслеживается, как если бы скрипт отключился.
Что здесь происходит?