Flex месяц UTC индексируется иначе, чем dateUTC и FullYearUTC - PullRequest
0 голосов
/ 14 ноября 2011

Я весело провожу время с датами во флексе, и у меня появилась странная ошибка.Это оказалось не совсем ошибкой, а несколько странным способом работы Flex с датами.А именно,

dateSelected.selectedDate.fullYearUTC возвращает четырехзначный номер года, dateSelected.selectedDate.dateUTC возвращает номер дня от 1 до 31, а dateSelected.selectedDate.monthUTC возвращает номер месяца от 0 до 11 (!!!).

Что с этим?Есть ли веская причина, по которой все поля обрабатываются одинаково?Я думаю, что есть, но не смог найти часть «почему».

Приветствия

Ответы [ 2 ]

2 голосов
/ 14 ноября 2011

Хотя обработка дат в ActionScript (и многих других языках), безусловно, не идеальна, на самом деле есть несколько понятная логика:

Вы должны представить себе внутреннюю работукласса Date в виде массивов.В то время как номера года и даты присваиваются периоду времени (представьте его как значение массива по указанному индексу массива) - день недели, месяц и т. Д.,представьте номер индекса (представьте его как ключ массива ).

В flex номера индекса начинаются с 0, поэтому попробуйте изобразить эти массивы в коде:

var months:Array = ["January", "February",...];
// months [0] => "January"
// (Date.monthUTC returns the index number)
var daysOfWeek:Array = ["Sunday", "Monday", "Tuesday",...];
// daysOfWeek [2] => "Tuesday"
// (Date.dayUTC returns the index number)

, и они наиболее интересны:

var date:Array = [1,2,3,4,...];
// date [0] => 1
// (Date.dateUTC returns the value)
var years:Array = [1970, 1971, 1972,...];
// year[0] => 1970
// (Date.fullYearUTC returns the value)
1 голос
/ 14 ноября 2011

Flex использует массивы с нуля. Итак, массив, содержащий названия месяцев в Flex

var monthNames:Array=["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"];

Даст вам January на monthNames[0].

Чтобы соответствовать этой концепции, date.monthUTC или date.month возвращают на единицу меньше, чем то, что вы пишете вручную, как номер месяца.

Я полагаю, что многие другие языки также ведут себя аналогично.

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