打死你我也不说

  • 生活
打死你我也不说的小窝
友好交流,欢迎你
  1. 首页
  2. 程序开发
  3. JavaScript
  4. 正文

JS各种小工具

2021年1月30日 1269点热度 3人点赞 0条评论

一:时间处理

    1:格式化

export default {

    // 日期格式化
    /**
    * 将 Date 转化为指定格式的String
    * 月(M)、日(d)、12小时(h)、24小时(H)、分(m)、秒(s)、周(E)、季度(q)、早午晚(T) 可以用 1-2 个占位符
    * 年(y)可以用 1-4 个占位符,毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
    * eg:
    * format(new Date(),"yyyy-MM-dd hh:mm:ss.S") ==> 2006-07-02 08:09:04.423
    * format(new Date(),"yyyy-MM-dd E HH:mm:ss") ==> 2009-03-10 二 20:09:04
    * format(new Date(),"yyyy-MM-dd EE hh:mm:ss") ==> 2009-03-10 周二 08:09:04
    * format(new Date(),"yyyy-MM-dd EEE hh:mm:ss") ==> 2009-03-10 星期二 08:09:04
    * format(new Date(),"yyyy-M-d h:m:s.S") ==> 2006-7-2 8:9:4.18
    * format(new Date(),"yyyy/MM/dd (EEE) T hh:mm") ==> 2017/09/06 (星期三) 下午 05:01
    *
    */
    DateUtil: {
    // 获取date对象 可传字符串 兼容ios safari
        date (val) {
            if (!val){
                return false;
            }
            if (!val.getTime) {
                let arr=val.split(/[- : T /]/)
                return new Date(arr[0],arr[1]-1,arr[2],arr[3],arr[4],arr[5]);
            } 
            else {
                return val;
            }
        },
        format (date, fmt) {
            date = this.date(date)
            let o = {
                'M+':date.getMonth() + 1, // 月份
                'd+':date.getDate(), // 日
                'h+':date.getHours()%12 ===0?12:date.getHours()%12,// 小时
                'H+':date.getHours(),//小时
                'm+':date.getMinutes(),// 分
                's+':date.getSeconds(),// 秒
                'q+':Math.floor((date.getMonth()+3)/3),// 季度
                'S':date.getMilliseconds()// 毫秒
            }
            let week = {
                '0':'\u65e5',
                '1':'\u4e00',
                '2':'\u4e8c',
                '3':'\u4e09',
                '4':'\u56db',
                '5':'\u4e94',
                '6':'\u516d'
            }
            let time = {
                '0':'\u51cc\u6668', // 上午
                '1':'\u4e0a\u5348', // 下午
                '2':'\u4e0b\u5348', // 晚上
                '3':'\u665a\u4e0a' // 凌晨
            }
            if (/(y+)/.test(fmt)) {
                fmt=fmt.replace(RegExp.$1,(date.getFullYear()+'').substr(4-RegExp.$1.length));
            }
            if (/(E+)/.test(fmt)) {
                fmt=fmt.replace(RegExp.$1,((RegExp.$1.length>1)?(RegExp.$1.length>2?'/u661f/u671f':'/u5468'):'')+week[date.getDay()+'']);
            }
            if (/(T)/.test(fmt)) {
                fmt=fmt.replace(RegExp.$1,time[parseInt(date.getHours()/6)]);
            }
            for (let k in o) {
                if (new RegExp('(' + k + ')').test(fmt)) {
                    fmt=fmt.replace(RegExp.$1,(RegExp.$1.length===1)?(o[k]):(('00'+o[k]).substr((''+o[k]).length)));
                }
            }
            return unescape(fmt.replace(/\/u/g, '%u'));
        }
    }
}

二:数组操作

    1:删除、插入、替换

删除-用于删除元素,两个参数,第一个参数(要删除第一项的位置),第二个参数(要删除的项数)
插入-向数组指定位置插入任意项元素。三个参数,第一个参数(其实位置),第二个参数(0),第三个参数(插入的项)
替换-向数组指定位置插入任意项元素,同时删除任意数量的项,三个参数。第一个参数(起始位置),第二个参数(删除的项数),第三个参数(插入任意数量的项)

var lang = ["php","java","javascript"];
//删除
var removed = lang.splice(1,1);
alert(lang); //php,javascript
alert(removed); //java ,返回删除的项
//插入
var insert = lang.splice(0,0,"asp"); //从第0个位置开始插入
alert(insert); //返回空数组
alert(lang); //asp,php,javascript
//替换
var replace = lang.splice(1,1,"c#","ruby"); //删除一项,插入两项
alert(lang); //asp,c#,ruby
alert(replace); //php,返回删除的项

 

标签: js
最后更新:2021年1月30日

打死你我也不说

这个人很懒,什么都没留下

点赞
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

COPYRIGHT © 2024 打死你我也不说. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

蜀ICP备2021001826号

川公网安备 51010402001168号