2010-03-31 2 views
0

SCinitiationtarget.selectedDate = new Дата (rows1 [i] ['InitiationTarget']);SelectedDate не устанавливается должным образом при нагрузке в Flex

Я устанавливаю свой seletedDate в свой DateChooser вот так. Формат, который я получаю из базы данных, - 2009-12-30.

Его отображение в правильном порядке.

+0

Имеет ли строки1 [i] ['InitiationTarget'] как ожидаемое значение? что это за тип данных? – quoo

+0

Дата - это набор DataType, когда я прослеживаю, я получаю как 2009-12-30, но не отображается правильно. – Kevin

+0

- это SCinitiationtarget DateChooser? ваш пост не ясен. – quoo

ответ

0

I наконец, получил решение.

var dateStr:String = dateFormatter.format(rows1[i]['InitiationTarget']); 
SCinitiationtarget.selectedDate = new Date(dateStr); 

<mx:DateFormatter id="dateFormatter" formatString="MMM D, YYYY"/> 

С этим проблема решена.

0

Первый аргумент конструктора Date называется yearOrTimeValue, и в его документации говорится, что он принимает год или время в миллисекундах UTC. Для правильного использования Date строительства:

new Date(2009, 12, 30) 
+1

Это не совсем точно. Из документов: если вы передаете один аргумент типа данных String и строка содержит допустимую дату, объект Date содержит значение времени, основанное на этой дате. – quoo

+0

Вы правы. Я просто прочитал документацию по первому аргументу, который не вызывает этого варианта использования. Я должен сказать, дерьмовая документация. В любом случае кажется, что тире не разрешено в качестве разделителя. – hleinone

4

Я считаю, что объект даты не распознает тир в качестве действительного сепаратора. Вам придется каким-то образом переформатировать свои объекты даты.

Например, это работает:

var date:Date = new Date("2009/12/30"); 
myDateChooser.selectedDate = date; 

Но это не делает:

var date:Date = new Date("2009-12-30"); 
myDateChooser.selectedDate = date; 

Для получения дополнительной информации о том, что дата форматы действительны, обратитесь к документации здесь: http://livedocs.adobe.com/flex/3/langref/Date.html#Date%28%29

+0

Это то, что я ищу, как переформатировать дату в ГГГГ/ММ/ДД, как я получаю из базы данных как ГГГГ-ММ-ДД – Kevin

+0

oldDate.split ('-'). Join ('/'); или oldDate.replace (/ - /, '/'); (хотя вы захотите дважды проверить мой шаблон регулярного выражения в методе замещения) – quoo

+0

Я проверил свое решение – Kevin

0

Почему бы не использовать метод parse класса Date?

SCinitiationtarget.selectedDate = Date.parse(rows1[i]['InitiationTarget']);