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
    }
  • 相关阅读:
    area标签的使用,图片中某一个部分可以点击跳转,太阳系中点击某个行星查看具体信息
    使用window.localStorage,window.localStorage记录点击次数
    js判断是否是在微信浏览器中打开
    点击按钮回到页面顶端的几种方式
    一行代码实现F11的功能,即让浏览器窗口全屏
    容器居中
    判断某个窗口是否是活动窗口(当前正在使用、操作的窗口)
    对数组每项进行处理、判断的几种方法
    form文件上传、下载,获取返回值
    scss基本使用及操作函数
  • 原文地址:https://www.cnblogs.com/ltian123/p/14084800.html
Copyright © 2011-2022 走看看