i have json example this:
[ {"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"}, ] i don't know if there way count total working hours each employer.
if understood question correctly want count total work times each emp_name.
just need use code:
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" } ]; this function d3.nest().key(function (d) { return d.emp_name }) group data emp_name.
var nest = d3.nest().key(function (d) { return d.emp_name }) .rollup(function(v) { return d3.sum(v, function (d) { //convert time standard format 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]; //cal difference between time_to , tim_from var timeto = date.parse(splitedtimeto); var timefrom = date.parse(splitedtimefrom); var deltatime = timeto - timefrom; //convert date milli s hour deltatime = math.ceil(deltatime / (1000 * 3600)); console.log(deltatime); return deltatime; }); }) .entries(data); console.log(json.stringify(nest)); complete jsfiddel here.
Comments
Post a Comment