DateTimeAxis - 设置标签以显示日期+时间

时间:2009-09-22 19:09:42

标签: flex charts

flex 3图表组件中是否有办法使用水平DateTimeAxis显示日期和时间?

目前,DateTimeAxis元素有一个属性dataunits,允许将值设置为“毫秒|秒|分钟|小时|天|周|月|年”中的任何一个,但我想将标签显示为“2009/09 / 15 06:00:00“,其中包括日期和时间。

以下是我正在使用的样本

     

[Bindable]
 public var deck:ArrayCollection = new ArrayCollection([
    {date:"2009-09-15 06:00:00", close:42.71},
    {date:"2009-09-16 06:15:00", close:42.99}

 ]);

 public function myParseFunction(s:String):Date {
   var sDate = s.substring(0,s.indexOf(" "));
   var sTime = s.substring(s.indexOf(" "));
   var aDate = sDate.split("-");
   var aTime = sTime.split(":");
   return new Date(aDate[0],(aDate[1]*1-1),aDate[2],aTime[0],aTime[1],aTime[2],0);
 }

]]>                                                                                        

提前致谢。

1 个答案:

答案 0 :(得分:2)

要解决此问题,您必须扩展< mx:DateTimeAxis> (不幸的是)。

但是,这并不难,并在此处发布了一个示例:http://codeznips.blogspot.com/2010/12/escape-american-date-format-in.html

您可能需要通过添加formatSeconds()并设置formatStringSeconds = "YYYY/MM/DD JJ:NN:SS"来进一步扩展上述示例。

或者可以只使用现有的formatStringDays并设置dataUnits = "days",如下所示:

<mx:horizontalAxis>
    <charts:FormattedDateTimeAxis
         formatStringDays="YYYY/MM/DD JJ:NN:SS"
         dataUnits = "days"/> 
</mx:horizontalAxis>

维加德