123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- /**
- * Created by PanJiaChen on 16/11/18.
- */
- /**
- * Parse the time to string
- * @param {(Object|string|number)} time
- * @param {string} cFormat
- * @returns {string}
- */
- import dayjs from 'dayjs'
- export function parseTime (time, cFormat) {
- if (arguments.length === 0) {
- return null
- }
- const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'
- let date
- if (typeof time === 'object') {
- date = time
- } else {
- if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) {
- time = parseInt(time)
- }
- if ((typeof time === 'number') && (time.toString().length === 10)) {
- time = time * 1000
- }
- date = new Date(time)
- }
- const formatObj = {
- y: date.getFullYear(),
- m: date.getMonth() + 1,
- d: date.getDate(),
- h: date.getHours(),
- i: date.getMinutes(),
- s: date.getSeconds(),
- a: date.getDay()
- }
- const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
- let value = formatObj[key]
- // Note: getDay() returns 0 on Sunday
- if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value] }
- if (result.length > 0 && value < 10) {
- value = '0' + value
- }
- return value || 0
- })
- return time_str
- }
- /**
- * @param {number} time
- * @param {string} option
- * @returns {string}
- */
- export function formatTime (time, option) {
- if (('' + time).length === 10) {
- time = parseInt(time) * 1000
- } else {
- time = +time
- }
- const d = new Date(time)
- const now = Date.now()
- const diff = (now - d) / 1000
- if (diff < 30) {
- return '刚刚'
- } else if (diff < 3600) {
- // less 1 hour
- return Math.ceil(diff / 60) + '分钟前'
- } else if (diff < 3600 * 24) {
- return Math.ceil(diff / 3600) + '小时前'
- } else if (diff < 3600 * 24 * 2) {
- return '1天前'
- }
- if (option) {
- return parseTime(time, option)
- } else {
- return (
- d.getMonth() +
- 1 +
- '月' +
- d.getDate() +
- '日' +
- d.getHours() +
- '时' +
- d.getMinutes() +
- '分'
- )
- }
- }
- /**
- * @param {string} url
- * @returns {Object}
- */
- export function param2Obj (url) {
- const search = url.split('?')[1]
- if (!search) {
- return {}
- }
- return JSON.parse(
- '{"' +
- decodeURIComponent(search)
- .replace(/"/g, '\\"')
- .replace(/&/g, '","')
- .replace(/=/g, '":"')
- .replace(/\+/g, ' ') +
- '"}'
- )
- }
- export function countDown (time) {
- var s = 0;
- var hour = time.split(':')[0];
- var min = time.split(':')[1];
- var sec = time.split(':')[2];
- s = Number(hour * 3600) + Number(min * 60) + Number(sec);
- return s;
- }
- export function formatDuring (mss) {
- var hours = parseInt((mss % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
- var minutes = parseInt((mss % (1000 * 60 * 60)) / (1000 * 60));
- var seconds = (mss % (1000 * 60)) / 1000;
- hours = hours < 10 ? ('0' + hours) : hours;
- minutes = minutes < 10 ? ('0' + minutes) : minutes;
- seconds = seconds < 10 ? ('0' + seconds) : seconds;
- return hours + ":" + minutes + ":" + seconds;
- }
- export const objectToOptions = data => {
- const options = []
- for (const key in data) {
- if (data.hasOwnProperty(key)) {
- const item = data[key]
- const upkey = key.toLocaleUpperCase()
- options.push({
- label: item,
- value: (upkey === 'TRUE' || upkey === 'FALSE' ? upkey === 'TRUE' : key)
- })
- }
- }
- return options
- }
- export const getTimes = (times, keys = [], format = 'YYYY-MM-DD') => {
- if (times && times.length) {
- return {
- [keys[0] || 'start']: dayjs(times[0]).isValid() ? dayjs(times[0]).format(format) : '',
- [keys[1] || 'end']: dayjs(times[1]).isValid() ? dayjs(times[1]).format(format) : '',
- }
- }
- return {}
- }
|