JSFiddle - React, Tailwind, and code Playground

by Gabriel Z

JavaScript

var data = [
            { "emp_name": "ABC", "works_on": "wheels", "time_from": "2012-03-27 10:00:00", "time_to": "2012-03-27 12:00:00" },
            { "emp_name": "xyz", "works_on": "seat", "time_from": "2012-03-27 14:00:00", "time_to": "2012-03-27 17:00:00" },
            { "emp_name": "ABC", "works_on": "painting", "time_from": "2012-03-28 10:00:00", "time_to": "2012-03-28 12:00:00" },
            { "emp_name": "xyz", "works_on": "tube", "time_from": "2012-03-28 14:00:00", "time_to": "2012-03-28 17:00:00" },
            { "emp_name": "pqr", "works_on": "engine", "time_from": "2012-03-29 10:00:00", "time_to": "2012-03-29 12:00:00" },
            { "emp_name": "ABC", "works_on": "wiper", "time_from": "2012-03-29 14:00:00", "time_to": "2012-03-29 17:00:00" },
            { "emp_name": "mno", "works_on": "air_cooler", "time_from": "2012-03-30 10:00:00", "time_to": "2012-03-30 12:00:00" },
            { "emp_name": "ABC", "works_on": "wheels", "time_from": "2012-03-30 14:00:00", "time_to": "2012-03-30 17:00:00" }
        ];

        var nest = d3.nest().key(function (d) { return d.emp_name })
            .rollup(function(v) {
                return d3.sum(v, function (d) {
                    var sTimeTo = d.time_to;
                    var splitedTimeTo = sTimeTo.split(" ");
                    splitedTimeTo = splitedTimeTo[0] + "T" + splitedTimeTo[1];

                    var sTimeFrom = d.time_from;
                    var splitedTimeFrom = sTimeFrom.split(" ");
                    splitedTimeFrom = splitedTimeFrom[0] + "T" + splitedTimeFrom[1];

                    var timeTo = Date.parse(splitedTimeTo);
                    var timeFrom = Date.parse(splitedTimeFrom);
                    var deltaTime = timeTo - timeFrom;
                    //convert date from milli s to an hour
                    deltaTime = Math.ceil(deltaTime / (1000 * 3600));
                    console.log(deltaTime);

                    return deltaTime;
                });
          ...