123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- // utils.js
- export function formatTime(time) {
- if (typeof time !== 'number' || time < 0) {
- return time.toString();
- }
- const hour = Math.floor(time / 3600);
- time %= 3600;
- const minute = Math.floor(time / 60);
- const second = time % 60;
- return [hour, minute, second].map(n => n.toString().padStart(2, '0')).join(':');
- }
- export function formatLocation(longitude, latitude) {
- if (typeof longitude === 'string' && typeof latitude === 'string') {
- longitude = parseFloat(longitude);
- latitude = parseFloat(latitude);
- }
- return {
- longitude: longitude.toFixed(2).split('.'),
- latitude: latitude.toFixed(2).split('.')
- };
- }
- export const dateUtils = {
- UNITS: {
- '年': 31557600000,
- '月': 2629800000,
- '天': 86400000,
- '小时': 3600000,
- '分钟': 60000,
- '秒': 1000
- },
- humanize(milliseconds) {
- for (const key in this.UNITS) {
- if (milliseconds >= this.UNITS[key]) {
- return Math.floor(milliseconds / this.UNITS[key]) + key + '前';
- }
- }
- return '刚刚';
- },
- format(dateStr) {
- const date = this.parse(dateStr);
- const diff = Date.now() - date.getTime();
- if (diff < this.UNITS['天']) {
- return this.humanize(diff);
- }
- const _format = number => (number < 10 ? `0${number}` : number);
- return `${date.getFullYear()}/${_format(date.getMonth() + 1)}/${_format(date.getDate())} - ${_format(date.getHours())}:${_format(date.getMinutes())}`;
- },
- parse(str) { // 将"yyyy-mm-dd HH:MM:ss"格式的字符串,转化为一个Date对象
- const a = str.split(/[^0-9]/);
- return new Date(a[0], a[1] - 1, a[2], a[3], a[4], a[5]);
- }
- };
- export function formateDates(datetime, type) {
- const year = datetime.getFullYear();
- const month = String(datetime.getMonth() + 1).padStart(2, '0');
- const date = String(datetime.getDate()).padStart(2, '0');
- const hour = String(datetime.getHours()).padStart(2, '0');
- const minute = String(datetime.getMinutes()).padStart(2, '0');
- const second = String(datetime.getSeconds()).padStart(2, '0');
- switch (type) {
- case "Y-M-D h:min:s":
- return `${year}-${month}-${date} ${hour}:${minute}:${second}`;
- case "Y-M-D":
- return `${year}-${month}-${date}`;
- case "h:min:s":
- return `${hour}:${minute}:${second}`;
- default:
- return '';
- }
- }
- export function deteleObject(obj) {
- const uniques = [];
- const stringify = {};
- obj.forEach(item => {
- const keys = Object.keys(item).sort();
- const str = keys.map(key => JSON.stringify([key, item[key]])).join('');
- if (!stringify[str]) {
- uniques.push(item);
- stringify[str] = true;
- }
- });
- return uniques;
- }
- export function formateDate(datetime, type) {
- const year = datetime.getFullYear();
- const month = String(datetime.getMonth() + 1).padStart(2, '0');
- const date = String(datetime.getDate()).padStart(2, '0');
- const hour = String(datetime.getHours()).padStart(2, '0');
- const minute = String(datetime.getMinutes()).padStart(2, '0');
- const second = String(datetime.getSeconds()).padStart(2, '0');
- switch (type) {
- case "Y-M-D h:min:s":
- return `${year}-${month}-${date} ${hour}:${minute}:${second}`;
- case "Y-M-D":
- return `${year}年${month}月${date}日`;
- case "h:min:s":
- return `${hour}:${minute}:${second}`;
- case "h":
- return hour;
- case "min":
- return minute;
- default:
- return '';
- }
- }
- export function randomNum(minNum, maxNum = null) {
- if (maxNum === null) {
- maxNum = minNum;
- minNum = 0;
- }
- return Math.floor(Math.random() * (maxNum - minNum + 1)) + minNum;
- }
- export function pointInsideCircle(point, circle, r) {
- if (r === 0) return false;
- const dx = circle[0] - point[0];
- const dy = circle[1] - point[1];
- return dx * dx + dy * dy <= r * r;
- }
- export function isSameDay(timeStampA) {
- const dateA = new Date(timeStampA);
- const dateB = new Date();
- return dateA.setHours(0, 0, 0, 0) === dateB.setHours(0, 0, 0, 0);
- }
- export function getCurrentMonthFirst() {
- const date = new Date();
- date.setDate(1);
- return `${date.getFullYear()}年${date.getMonth() + 1}月${date.getDate()}日`;
- }
- export function getCurrentMonthLast() {
- const date = new Date();
- date.setMonth(date.getMonth() + 1, 0);
- return `${date.getFullYear()}年${date.getMonth() + 1}月${date.getDate()}日`;
- }
|