plugins/report/public/echarts2/src/util/date.js in admin-sys-1.0.2 vs plugins/report/public/echarts2/src/util/date.js in admin-sys-1.1.0
- old
+ new
@@ -1,162 +1,162 @@
-/**
- * echarts日期运算格式化相关
- *
- * @desc echarts基于Canvas,纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据统计图表。
- * @author Kener (@Kener-林峰, kener.linfeng@gmail.com)
- *
- */
-define(function() {
- var _timeGap = [
- {formatter: 'hh : mm : ss', value: 1000}, // 1s
- {formatter: 'hh : mm : ss', value: 1000 * 5}, // 5s
- {formatter: 'hh : mm : ss', value: 1000 * 10}, // 10s
- {formatter: 'hh : mm : ss', value: 1000 * 15}, // 15s
- {formatter: 'hh : mm : ss', value: 1000 * 30}, // 30s
- {formatter: 'hh : mm\nMM - dd', value: 60000}, // 1m
- {formatter: 'hh : mm\nMM - dd', value: 60000 * 5}, // 5m
- {formatter: 'hh : mm\nMM - dd', value: 60000 * 10}, // 10m
- {formatter: 'hh : mm\nMM - dd', value: 60000 * 15}, // 15m
- {formatter: 'hh : mm\nMM - dd', value: 60000 * 30}, // 30m
- {formatter: 'hh : mm\nMM - dd', value: 3600000}, // 1h
- {formatter: 'hh : mm\nMM - dd', value: 3600000 * 2}, // 2h
- {formatter: 'hh : mm\nMM - dd', value: 3600000 * 6}, // 6h
- {formatter: 'hh : mm\nMM - dd', value: 3600000 * 12}, // 12h
- {formatter: 'MM - dd\nyyyy', value: 3600000 * 24}, // 1d
- {formatter: 'week', value: 3600000 * 24 * 7}, // 7d
- {formatter: 'month', value: 3600000 * 24 * 31}, // 1M
- {formatter: 'quarter', value: 3600000 * 24 * 380 / 4}, // 3M
- {formatter: 'half-year', value: 3600000 * 24 * 380 / 2},// 6M
- {formatter: 'year', value: 3600000 * 24 * 380} // 1Y
- ];
-
- /**
- * 获取最佳formatter
- * @params {number} min 最小值
- * @params {number} max 最大值
- * @params {=number} splitNumber 分隔段数
- */
- function getAutoFormatter(min, max, splitNumber) {
- splitNumber = splitNumber > 1 ? splitNumber : 2;
- // 最优解
- var curValue;
- var totalGap;
- // 目标
- var formatter;
- var gapValue;
- for (var i = 0, l = _timeGap.length; i < l; i++) {
- curValue = _timeGap[i].value;
- totalGap = Math.ceil(max / curValue) * curValue
- - Math.floor(min / curValue) * curValue;
- if (Math.round(totalGap / curValue) <= splitNumber * 1.2) {
- formatter = _timeGap[i].formatter;
- gapValue = _timeGap[i].value;
- // console.log(formatter, gapValue,i);
- break;
- }
- }
-
- if (formatter == null) {
- formatter = 'year';
- curValue = 3600000 * 24 * 367;
- totalGap = Math.ceil(max / curValue) * curValue
- - Math.floor(min / curValue) * curValue;
- gapValue = Math.round(totalGap / (splitNumber - 1) / curValue) * curValue;
- }
-
- return {
- formatter: formatter,
- gapValue: gapValue
- };
- }
-
- /**
- * 一位数字补0
- */
- function s2d (v) {
- return v < 10 ? ('0' + v) : v;
- }
-
- /**
- * 百分比计算
- */
- function format(formatter, value) {
- if (formatter == 'week'
- || formatter == 'month'
- || formatter == 'quarter'
- || formatter == 'half-year'
- || formatter == 'year'
- ) {
- formatter = 'MM - dd\nyyyy';
- }
-
- var date = getNewDate(value);
- var y = date.getFullYear();
- var M = date.getMonth() + 1;
- var d = date.getDate();
- var h = date.getHours();
- var m = date.getMinutes();
- var s = date.getSeconds();
-
- formatter = formatter.replace('MM', s2d(M));
- formatter = formatter.toLowerCase();
- formatter = formatter.replace('yyyy', y);
- formatter = formatter.replace('yy', y % 100);
- formatter = formatter.replace('dd', s2d(d));
- formatter = formatter.replace('d', d);
- formatter = formatter.replace('hh', s2d(h));
- formatter = formatter.replace('h', h);
- formatter = formatter.replace('mm', s2d(m));
- formatter = formatter.replace('m', m);
- formatter = formatter.replace('ss', s2d(s));
- formatter = formatter.replace('s', s);
-
- return formatter;
- }
-
- function nextMonday(value) {
- value = getNewDate(value);
- value.setDate(value.getDate() + 8 - value.getDay());
- return value;
- }
-
- function nextNthPerNmonth(value, nth, nmon) {
- value = getNewDate(value);
- value.setMonth(Math.ceil((value.getMonth() + 1) / nmon) * nmon);
- value.setDate(nth);
- return value;
- }
-
- function nextNthOnMonth(value, nth) {
- return nextNthPerNmonth(value, nth, 1);
- }
-
- function nextNthOnQuarterYear(value, nth) {
- return nextNthPerNmonth(value, nth, 3);
- }
-
- function nextNthOnHalfYear(value, nth) {
- return nextNthPerNmonth(value, nth, 6);
- }
-
- function nextNthOnYear(value, nth) {
- return nextNthPerNmonth(value, nth, 12);
- }
-
- function getNewDate(value) {
- return value instanceof Date
- ? value
- : new Date(typeof value == 'string' ? value.replace(/-/g, '/') : value);
- }
-
- return {
- getAutoFormatter: getAutoFormatter,
- getNewDate: getNewDate,
- format: format,
- nextMonday: nextMonday,
- nextNthPerNmonth: nextNthPerNmonth,
- nextNthOnMonth: nextNthOnMonth,
- nextNthOnQuarterYear: nextNthOnQuarterYear,
- nextNthOnHalfYear: nextNthOnHalfYear,
- nextNthOnYear : nextNthOnYear
- };
+/**
+ * echarts日期运算格式化相关
+ *
+ * @desc echarts基于Canvas,纯Javascript图表库,提供直观,生动,可交互,可个性化定制的数据统计图表。
+ * @author Kener (@Kener-林峰, kener.linfeng@gmail.com)
+ *
+ */
+define(function() {
+ var _timeGap = [
+ {formatter: 'hh : mm : ss', value: 1000}, // 1s
+ {formatter: 'hh : mm : ss', value: 1000 * 5}, // 5s
+ {formatter: 'hh : mm : ss', value: 1000 * 10}, // 10s
+ {formatter: 'hh : mm : ss', value: 1000 * 15}, // 15s
+ {formatter: 'hh : mm : ss', value: 1000 * 30}, // 30s
+ {formatter: 'hh : mm\nMM - dd', value: 60000}, // 1m
+ {formatter: 'hh : mm\nMM - dd', value: 60000 * 5}, // 5m
+ {formatter: 'hh : mm\nMM - dd', value: 60000 * 10}, // 10m
+ {formatter: 'hh : mm\nMM - dd', value: 60000 * 15}, // 15m
+ {formatter: 'hh : mm\nMM - dd', value: 60000 * 30}, // 30m
+ {formatter: 'hh : mm\nMM - dd', value: 3600000}, // 1h
+ {formatter: 'hh : mm\nMM - dd', value: 3600000 * 2}, // 2h
+ {formatter: 'hh : mm\nMM - dd', value: 3600000 * 6}, // 6h
+ {formatter: 'hh : mm\nMM - dd', value: 3600000 * 12}, // 12h
+ {formatter: 'MM - dd\nyyyy', value: 3600000 * 24}, // 1d
+ {formatter: 'week', value: 3600000 * 24 * 7}, // 7d
+ {formatter: 'month', value: 3600000 * 24 * 31}, // 1M
+ {formatter: 'quarter', value: 3600000 * 24 * 380 / 4}, // 3M
+ {formatter: 'half-year', value: 3600000 * 24 * 380 / 2},// 6M
+ {formatter: 'year', value: 3600000 * 24 * 380} // 1Y
+ ];
+
+ /**
+ * 获取最佳formatter
+ * @params {number} min 最小值
+ * @params {number} max 最大值
+ * @params {=number} splitNumber 分隔段数
+ */
+ function getAutoFormatter(min, max, splitNumber) {
+ splitNumber = splitNumber > 1 ? splitNumber : 2;
+ // 最优解
+ var curValue;
+ var totalGap;
+ // 目标
+ var formatter;
+ var gapValue;
+ for (var i = 0, l = _timeGap.length; i < l; i++) {
+ curValue = _timeGap[i].value;
+ totalGap = Math.ceil(max / curValue) * curValue
+ - Math.floor(min / curValue) * curValue;
+ if (Math.round(totalGap / curValue) <= splitNumber * 1.2) {
+ formatter = _timeGap[i].formatter;
+ gapValue = _timeGap[i].value;
+ // console.log(formatter, gapValue,i);
+ break;
+ }
+ }
+
+ if (formatter == null) {
+ formatter = 'year';
+ curValue = 3600000 * 24 * 367;
+ totalGap = Math.ceil(max / curValue) * curValue
+ - Math.floor(min / curValue) * curValue;
+ gapValue = Math.round(totalGap / (splitNumber - 1) / curValue) * curValue;
+ }
+
+ return {
+ formatter: formatter,
+ gapValue: gapValue
+ };
+ }
+
+ /**
+ * 一位数字补0
+ */
+ function s2d (v) {
+ return v < 10 ? ('0' + v) : v;
+ }
+
+ /**
+ * 百分比计算
+ */
+ function format(formatter, value) {
+ if (formatter == 'week'
+ || formatter == 'month'
+ || formatter == 'quarter'
+ || formatter == 'half-year'
+ || formatter == 'year'
+ ) {
+ formatter = 'MM - dd\nyyyy';
+ }
+
+ var date = getNewDate(value);
+ var y = date.getFullYear();
+ var M = date.getMonth() + 1;
+ var d = date.getDate();
+ var h = date.getHours();
+ var m = date.getMinutes();
+ var s = date.getSeconds();
+
+ formatter = formatter.replace('MM', s2d(M));
+ formatter = formatter.toLowerCase();
+ formatter = formatter.replace('yyyy', y);
+ formatter = formatter.replace('yy', y % 100);
+ formatter = formatter.replace('dd', s2d(d));
+ formatter = formatter.replace('d', d);
+ formatter = formatter.replace('hh', s2d(h));
+ formatter = formatter.replace('h', h);
+ formatter = formatter.replace('mm', s2d(m));
+ formatter = formatter.replace('m', m);
+ formatter = formatter.replace('ss', s2d(s));
+ formatter = formatter.replace('s', s);
+
+ return formatter;
+ }
+
+ function nextMonday(value) {
+ value = getNewDate(value);
+ value.setDate(value.getDate() + 8 - value.getDay());
+ return value;
+ }
+
+ function nextNthPerNmonth(value, nth, nmon) {
+ value = getNewDate(value);
+ value.setMonth(Math.ceil((value.getMonth() + 1) / nmon) * nmon);
+ value.setDate(nth);
+ return value;
+ }
+
+ function nextNthOnMonth(value, nth) {
+ return nextNthPerNmonth(value, nth, 1);
+ }
+
+ function nextNthOnQuarterYear(value, nth) {
+ return nextNthPerNmonth(value, nth, 3);
+ }
+
+ function nextNthOnHalfYear(value, nth) {
+ return nextNthPerNmonth(value, nth, 6);
+ }
+
+ function nextNthOnYear(value, nth) {
+ return nextNthPerNmonth(value, nth, 12);
+ }
+
+ function getNewDate(value) {
+ return value instanceof Date
+ ? value
+ : new Date(typeof value == 'string' ? value.replace(/-/g, '/') : value);
+ }
+
+ return {
+ getAutoFormatter: getAutoFormatter,
+ getNewDate: getNewDate,
+ format: format,
+ nextMonday: nextMonday,
+ nextNthPerNmonth: nextNthPerNmonth,
+ nextNthOnMonth: nextNthOnMonth,
+ nextNthOnQuarterYear: nextNthOnQuarterYear,
+ nextNthOnHalfYear: nextNthOnHalfYear,
+ nextNthOnYear : nextNthOnYear
+ };
});
\ No newline at end of file