zoukankan      html  css  js  c++  java
  • 前端 js 日期格式化

    // 日期格式化
    export const parseTime = (time, pattern)  => {
        if (arguments.length === 0 || !time) {
            return null;
        }
        const format = pattern || '{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)
            } else if (typeof time === 'string') {
                time = time.replace(new RegExp(/-/gm), '/');
            }
            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
    }

    转码

    // url转码
    export const paramToEncode = ( url ) => {
      if(!url) return
      return encodeURI(url)
    }
    // url解码
    export const paramToDecode = ( url ) => {
      if(!url) return
      return decodeURI(url)
    }
    从URL中解析参数
    /**
     * @param {String} url
     * @description 从URL中解析参数
     */
    export const getParams = url => {
      const keyValueArr = url.split('?')[1].split('&')
      let paramObj = {}
      keyValueArr.forEach(item => {
        const keyValue = item.split('=')
        paramObj[keyValue[0]] = keyValue[1]
      })
      return paramObj
    }
    回调函数需要执行的次数
    /**
     * @param {Number} times 回调函数需要执行的次数
     * @param {Function} callback 回调函数
     */
    export const doCustomTimes = (times, callback) => {
      let i = -1
      while (++i < times) {
        callback(i)
      }
    }
     

    // 日期格式化
    export const parseTime = (time, pattern) => {
    if (arguments.length === 0 || !time) {
    return null;
    }
    const format = pattern || '{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)
    } else if (typeof time === 'string') {
    time = time.replace(new RegExp(/-/gm), '/');
    }
    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
    }
  • 相关阅读:
    【并行计算-CUDA开发】CUDA shared memory bank 冲突
    【并行计算-CUDA开发】CUDA shared memory bank 冲突
    【并行计算-CUDA开发】CUDA bank conflict in shared memory
    【并行计算-CUDA开发】CUDA bank conflict in shared memory
    【并行计算-CUDA开发】从熟悉到精通 英伟达显卡选购指南
    【并行计算-CUDA开发】从熟悉到精通 英伟达显卡选购指南
    【C/C++开发】【VS开发】win32位与x64位下各类型长度对比
    【C/C++开发】【VS开发】win32位与x64位下各类型长度对比
    【并行计算-CUDA开发】浅谈GPU并行计算新趋势
    【并行计算-CUDA开发】浅谈GPU并行计算新趋势
  • 原文地址:https://www.cnblogs.com/ltian123/p/14084800.html
Copyright © 2011-2022 走看看