2009-11-04 4 views
1

"20-Aug-2008"형식의 문자열이 있습니다. 나는 이것이 20/08/2008 또는 08/20/2008로 변환되기를 원합니 까? 어떻게해야합니까?flex에서 현재 날짜로 문자열을 포맷하는 방법은 무엇입니까?

문자열에서 하이픈을 모두 제거하고 날짜 값으로 변환하기 만하면됩니다. dateFormatter 함수는 mm/dd/yyyy 형식의 날짜 값만 허용합니다. 누군가가 나를 도울 수

..

나는 정규식을 사용하여 문자열에서 모든 하이픈을 제거. 배열에서 저는 20, 8, 2008이라는 값을가집니다. 그 후 20/08/2008로 변환하는 방법을 진행 하시겠습니까?

편집

[Bindable]public var myDate:Date; 

    public function init():void 
    { 
     var dateStr:String="20-Aug-2008"; 

     var rex:RegExp = /-/; 

     var dateArray:Array = dateStr.split(rex); 

     myDate= new Date(dateArray[0],dateArray[1],dateArray[2]); 

    } 

    <mx:DateFormatter id="DateDisplay" formatString="MM/DD/YYYY"/> 

    <mx:TextArea id="date" text="{DateDisplay.format(myDate)}"/> 

내가 텍스트 영역에서 얻는 값은 : 01/00/NaN가. 내가 어디로 잘못 갔니?

답변

1

필자는 컴파일러를 사용하지 않아서 (이것을 확인할 수 없으므로), Year, Month (0부터 시작), Day를 예상하는 Date 생성자가 아닙니까? 그래서 다음과 같은 작업을해야합니다 :

myDate = new Date(dateArray[2], dateArray[0] - 1, dateArray[1]); 

(물론, 당신은 아마 오류 검사 사전을 수행 할 수 있습니다.)에서

: http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/Date.html#includeExamplesSummary

편집 : 더 나은 링크
http://livedocs.adobe.com/flex/2/langref/Date.html#Date%28%29
http://www.darronschall.com/weblog/2006/12/actionscript-30-tip-date-constructor.cfm

EDIT 2 : Oops. 숫자가 아니라 월 문자열을 다루고 있다는 사실을 잊어 버렸습니다. 다음과 같이 할 수 있습니다.

function getMonth(monthString:String):int 
{ 
    var months = new Array('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'); 

    for (var i:int=0; i<months.length; i++) 
    { 
     if months[i] == monthString) 
     { 
      return i; 
     } 
    } 

    // not a valid month string 
    return -1; 
} 

그런 다음 getMonth를 사용하여 주어진 월 이름과 관련된 번호를 찾습니다. 다시 말하지만, 저는 컴파일러를 편리하게 사용하지 못합니다. 그래서 이것은 옳지 않을 수 있습니다. 또한, 이것을 할 수있는 더 쉬운 방법이 있어야합니다 ... 지금 당장은 생각할 수 없습니다.

+0

저는 8 월에 dateArray [1]을 (를) 가지고 있습니다. 숫자로 변경하는 방법은 무엇입니까? 이 날짜 생성자는 내가 숫자를 부여한 경우에만 작동합니다. 그러나 나는 8 월 값을 가지고 있습니다. 숫자로 변경하는 방법이 있습니까? – Angeline

+0

감사합니다 ... 나는 또한 달 문자열이 전달되면 달의 수를 제공하는 함수가 있는지 검색하고있었습니다. 그런 기능을하지 못했습니다. 그래서 지금은이 기능을 사용할 것입니다. 나를 도와 주셔서 감사합니다. :-) – Angeline

관련 문제