开发者

How to format a String to date in flex?

I have a String in the format "20-Aug-2008". I want this to be converted to either 20/08/2008 or 08/20/2008? How can I do this?

I just want to remove all those hyphens from the String and convert it to a d开发者_StackOverflow中文版ate value. The dateFormatter function accepts only date values in the format mm/dd/yyyy.

Can someone help me out..

I used regex and removed all those hyphens,from the String. Now in an array I have the values, 20,Aug and 2008. How to proceed after that to convert to 20/08/2008?

Edit

  [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)}"/>

The value I get in the text area is: 01/00/NaN. Where have I gone wrong?


I don't have a compiler handy (so I can't check this), but isn't the Date constructor expecting Year, Month (zero-based), Day? So the following should work:

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

(Of course, you'll probably want to do some error-checking beforehand.)

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

EDIT: Better links
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. Forgot that you were dealing with a Month string, not a number. You could do something like the following, instead:

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;
}

Then, use getMonth to find the number that would be associated with the given month name. Again, I don't have a compiler handy, so this may not be right. Also, there's got to be an easier way to do this...just can't think of one right now.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜