Grouping dates by a certain interval in the pivot table

Mapping configuration

by Flexmonster Pivot Table

HTML

<script src="https://cdn.flexmonster.com/flexmonster.js"></script>

<button onclick="groupDates('1d')">Group dates</button>
<button onclick="groupDates(null)">Ungroup dates</button>

<div id="pivot-container"></div>

CSS

@import url(https://cdn.flexmonster.com/assets/jsfiddle-styles.css);

JavaScript

let pivot = new Flexmonster({
  container: "pivot-container",
  componentFolder: "https://cdn.flexmonster.com/",
  toolbar: true,
  report: {
    dataSource: {
      data: getData(),
      mapping: {
        "DeliveryDate": {
        	caption: "Delivery date",
        	type: "datetime"
        }
      }
    }
  }
});

function getData() {
  return [
    {
      "DeliveryDate": "2021-04-25T21:30:05",
      "Price": 200
    },
    {
      "DeliveryDate": "2021-04-25T23:55:00",
      "Price": 150
    },
    {
      "DeliveryDate": "2021-04-25T22:45:00",
      "Price": 300
    }
  ]
}

function groupDates(interval) {
	let report = pivot.getReport();
  report.dataSource.mapping["DeliveryDate"].interval = interval;
  pivot.setReport(report);
}