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