如何将一长串数字转换为格式化的小时数

Posted

技术标签:

【中文标题】如何将一长串数字转换为格式化的小时数【英文标题】:how to turn a long set of numbers into formatted hours 【发布时间】:2017-03-05 01:43:00 【问题描述】:

我需要将一长串数字格式化为小时。 您可以在所花费的时间列下看到很长的数字,这些小时数需要被格式化为不像现在那样,6,000,需要看起来像 6,000 小时。

我有另一个请求,我能够格式化“已用金额”列,但是我不知道如何格式化 hAxis 部分以显示美元符号。

我是 Google Charts 的新手,它学得很快。似乎文档已经散开。

  google.charts.setOnLoadCallback(drawTimeAndAmountSpentTimeLineChart);
    //Amount Completed
    function drawTimeAndAmountSpentTimeLineChart() 
        var data = google.visualization.arrayToDataTable([
            ['Web Design', 'Amount Spent', 'Time Spent'],
            ['Rendering Engines', 5000, 68000],
            ['User Management', 9000, 44000],
            ['Database', 5700, 32000],
            ['Security', 9000, 21000]
        ]);

        var options = 
            title: 'Amount Spent Per Task',
            chartArea:  width: '70%' ,
            hAxis: 
                title: 'Total Spent',
                minValue: 0,
                prefix: '$'
            ,
            vAxis: 
                title: 'Task'
            
        ;

        var formatter = new google.visualization.NumberFormat( prefix: '$' );
        formatter.format(data, 1);


        var chart = new google.visualization.BarChart(document.getElementById('timeAndAmountSpentTimeLineChart_div'));
        chart.draw(data, options);
    ;

如果不要求太多的横条,水平运行的高度需要大约 50 像素,而不是很小的高度。这将是一个很大的帮助。

我不知道为什么它不在 js fiddle 中绘制它在我的机器中绘制。

My Fiddle

【问题讨论】:

I have not idea why it is not drawing in js fiddle 也许是 TypeError: google.visualization is undefined 我也是 Fiddle 的新手;但是,我添加了两个外部 JS 文件,所以它应该可以工作。 您添加了 jsapi 和加载程序 - 但似乎没有加载 visualization 代码...您确定您添加了所需的所有内容吗? 缺少load 语句,不需要jsapi -- updated fiddle 【参考方案1】:

将NumberFormat 的pattern 属性用于'Time Spent'

对于 x 轴标签 --> hAxis.format

请参阅以下工作 sn-p...

google.charts.load('current', 
  callback: function () 
    var data = google.visualization.arrayToDataTable([
        ['Web Design', 'Amount Spent', 'Time Spent'],
        ['Rendering Engines', 5000, 68000],
        ['User Management', 9000, 44000],
        ['Database', 5700, 32000],
        ['Security', 9000, 21000]
    ]);

    var options = 
        title: 'Amount Spent Per Task',
        chartArea:  width: '70%' ,
        hAxis: 
            title: 'Total Spent',
            minValue: 0,
            format: '$#,##0'
        ,
        vAxis: 
            title: 'Task'
        
    ;

    var formatAmt = new google.visualization.NumberFormat( prefix: '$' );
    formatAmt.format(data, 1);

    var formatTime = new google.visualization.NumberFormat( pattern: '#,##0 hrs' );
    formatTime.format(data, 2);

    var chart = new google.visualization.BarChart(document.getElementById('timeAndAmountSpentTimeLineChart_div'));
    chart.draw(data, options);
  ,
  packages: ['corechart']
);
<script src="https://www.gstatic.com/charts/loader.js"></script>
<div id="timeAndAmountSpentTimeLineChart_div"></div>

【讨论】:

非常感谢,这是完美的!

以上是关于如何将一长串数字转换为格式化的小时数的主要内容,如果未能解决你的问题,请参考以下文章

excel 如何把数字自动转成字符串?

表格中如何把常规数字转换为小时分钟时间?

excel时间格式如何换成小时数字格式计算

如何在熊猫中将 4 位数字转换为小时:分钟时间格式

excel时间格式怎么换成小时数字格式计算

PHP文件大小格式化函数合集