我想创建一个图表来显示我在10k跑中的时间。一切正常,我唯一的问题是,我想格式化时间的显示方式。
当前时间显示为表示秒的数字。例如,30分钟的跑步时间可以减少到10800秒。google提供的格式化程序确实涵盖了很多东西,但我对它们提供的内容并不是很满意。
http://code.google.com/apis/chart/interactive/docs/reference.html#formatters
遗憾的是,没有关于如何实现您自己的格式化程序的信息。有没有可能我可以扩展一个格式化程序,或者是否有一个接口需要实现?
我要做的第一件事就是把数字10800解析成一个很好的时间,比如30:00 (30分0秒0毫秒)。也许patternformatter已经可以做到这一点,但我不知道如何实现,因为这涉及计算,并且不知道如何在patternformatter中实现这一点。
谢谢你的帮助。约翰尼
发布于 2011-07-06 20:49:53
使用具有自定义模式的DateFormat。例如:
google.visualization.DateFormat({pattern: "mm:ss.SSS"});需要注意的是,这将显示JS Date对象的日期时间,因此您需要提供JS Date形式的运行时间。因此,您可以指定采样数据的实际时间。或者,如果你只想显示自跑步开始以来的相对时间,你可以这样做:
new Date(new Date('Jan 01 2000').getTime() + sampleTime)..。其中sampleTime是以毫秒为单位的每个采样点的时间。(这只是将时间设置为自2000年1月1日午夜以来的毫秒,因此小时/分钟/秒将反映您的运行时间)
发布于 2014-09-26 19:09:48
在地理图表中遇到了类似的问题,其中有总秒数,需要将其显示为hh:mm:ss。我不能做到这一点,但我能够把它弄到mm:ss,这是可以接受的
我将总秒数转换为十进制数作为mm.ss。例如,200秒等于3:20,因此我将其标记为3.20,并将该值传递给图表,然后在地理图表上使用数字格式化程序:作为小数格式化程序
var formatter = new google.visualization.NumberFormat({
decimalSymbol: ':'
});默认的小数位数为2,因此显示为3:20。
https://stackoverflow.com/questions/6596233
复制相似问题