From d3579715544aae3550715581c11526e283a11ec7 Mon Sep 17 00:00:00 2001 From: Joe Fleming Date: Fri, 22 Apr 2016 11:25:06 -0700 Subject: [PATCH] add date interval module --- package.json | 1 + src/helpers/index_interval.js | 37 +++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+) create mode 100644 src/helpers/index_interval.js diff --git a/package.json b/package.json index ad11b3b..e4c2e45 100644 --- a/package.json +++ b/package.json @@ -32,6 +32,7 @@ "dependencies": { "elasticsearch": "~11.0.1", "lodash": "~4.11.1", + "moment": "~2.10.6", "puid": "~1.0.5" } } diff --git a/src/helpers/index_interval.js b/src/helpers/index_interval.js new file mode 100644 index 0000000..555f96d --- /dev/null +++ b/src/helpers/index_interval.js @@ -0,0 +1,37 @@ +import moment from 'moment'; + +export const intervals = [ + 'y', + 'M', + 'w', + 'd', + 'h', + 'm' +]; + +export const intervalNames = [ + 'year', + 'month', + 'week', + 'day', + 'hour', + 'minute' +]; + +export default function getTimestamp(intervalStr) { + const index = intervals.indexOf(intervalStr); + if (index === -1) throw new Error('Invalid index interval: ', intervalStr); + + const startType = intervalNames[intervalStr]; + const m = moment(); + m.startOf(startType); + + let dateString = 'YYYY-MM-DD'; + if (startType === 'hour') { + dateString += '-HH'; + } + if (startType === 'minute') { + dateString += '-HH-mm'; + } + return m.format(dateString); +} \ No newline at end of file