@antv/f2
Version:
Charts for mobile visualization.
57 lines (56 loc) • 2.28 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.YEAR = exports.SECOND = exports.MONTH = exports.MINUTE = exports.HOUR = exports.DAY = void 0;
exports.getTickInterval = getTickInterval;
exports.timeFormat = timeFormat;
exports.toTimeStamp = toTimeStamp;
var _util = require("@antv/util");
var _fecha = require("fecha");
var _bisector = _interopRequireDefault(require("./bisector"));
function timeFormat(time, mask) {
return (0, _fecha.format)(time, mask);
}
/**
* 转换成时间戳
* @param value 时间值
*/
function toTimeStamp(value) {
if ((0, _util.isString)(value)) {
if (value.indexOf('T') > 0) {
value = new Date(value).getTime();
} else {
// new Date('2010/01/10') 和 new Date('2010-01-10') 的差别在于:
// 如果仅有年月日时,前者是带有时区的: Fri Jan 10 2020 02:40:13 GMT+0800 (中国标准时间)
// 后者会格式化成 Sun Jan 10 2010 08:00:00 GMT+0800 (中国标准时间)
value = new Date(value.replace(/-/gi, '/')).getTime();
}
}
if ((0, _util.isDate)(value)) {
value = value.getTime();
}
return value;
}
var SECOND = exports.SECOND = 1000;
var MINUTE = exports.MINUTE = 60 * SECOND;
var HOUR = exports.HOUR = 60 * MINUTE;
var DAY = exports.DAY = 24 * HOUR;
var MONTH = exports.MONTH = DAY * 31;
var YEAR = exports.YEAR = DAY * 365;
var intervals = [['HH:mm:ss', SECOND], ['HH:mm:ss', SECOND * 10], ['HH:mm:ss', SECOND * 30], ['HH:mm', MINUTE], ['HH:mm', MINUTE * 10], ['HH:mm', MINUTE * 30], ['HH', HOUR], ['HH', HOUR * 6], ['HH', HOUR * 12], ['YYYY-MM-DD', DAY], ['YYYY-MM-DD', DAY * 4], ['YYYY-WW', DAY * 7], ['YYYY-MM', MONTH], ['YYYY-MM', MONTH * 4], ['YYYY-MM', MONTH * 6], ['YYYY', DAY * 380] // 借鉴echarts,保证每个周期累加时不会碰到恰巧不够的问题
];
function getTickInterval(min, max, tickCount) {
var target = (max - min) / tickCount;
var idx = (0, _bisector.default)(function (o) {
return o[1];
})(intervals, target) - 1;
var interval = intervals[idx];
if (idx < 0) {
interval = intervals[0];
} else if (idx >= intervals.length) {
interval = (0, _util.last)(intervals);
}
return interval;
}
;