js 时间转换、json操作、URL参数截取


主题列表:juejin, github, smartblue, cyanosis, channing-cyan, fancy, hydrogen, condensed-night-purple, greenwillow, v-green, vue-pro, healer-readable, mk-cute, jzman, geek-black, awesome-green, qklhk-chocolate

贡献主题:https://github.com/xitu/juejin-markdown-themes

theme: channing-cyan

highlight: monokai-sublime

js常用的一些方法集合

1、时间

```javascript /* * @Author: * @Date: 2020-10-12 21:49:16 * @LastEditors: * @LastEditTime: 2020-12-08 13:56:47 * @FilePath: time.js * @Description: 时间 / /* * 时间戳转年月日 * 时间戳转中国标准时间,直接 new Date(时间戳); / export function specificDate(time) { let date = new Date(time); let year = date.getFullYear(); / 在日期格式中,月份是从0开始的,因此要加0 使用三元表达式在小于10的前面加0,以达到格式统一 */ let month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1; let day = date.getDate() < 10 ? "0" + date.getDate() : date.getDate(); // 拼接 return year + "-" + month + "-" + day; }

/* * @description: yyyy-mm-dd / yyyy-mm 转中国便准时间 * @param {type} yyyy-mm-dd / yyyy-mm * @return {type} 中国便准时间 */ export function standardTime(date) { //let result = new Date(${date} GMT+0800); let result = return new Date(${date}); return result; } /* * @description: 取得当前时间的前一天 * @param {type} 中国标准时间 * @return {type} 前一天的时间标准时间 / export function frontDate(date) { return new Date(date.getTime() - 24 * 60 * 60 * 1000) } /* * @description: 取得当前时间的后一天 * @param {type} 中国标准时间 * @return {type} 后一天的时间标准时间 */ export function afterDate(date) { return new Date(date.getTime() + 24 * 60 * 60 * 1000) }

/* * @description: 根据标准时间 当天时间的 00:00:00 的时间戳 * @param {type} data为中国标准时间 * @return {type} 时间戳 */ export function sameDayStart(date) { return new Date(date.toLocaleDateString()).getTime(); } /* * @description: 根据标准时间 取到当天的23:59:59 的时间戳 * @param {type} data为中国标准时间 * @return {type} 时间戳 */ export function sameDayEnd(date) { return new Date(date).getTime() + 24 * 60 * 60 * 1000 - 1 }

// 时间戳转普通时间 export function dateFormat(time) { let date = new Date(time); let year = date.getFullYear(); /* 在日期格式中,月份是从0开始的,因此要加0 * 使用三元表达式在小于10的前面加0,以达到格式统一 如 09:11:05 */ let month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1; let day = date.getDate() < 10 ? "0" + date.getDate() : date.getDate(); let hours = date.getHours() < 10 ? "0" + date.getHours() : date.getHours(); let minutes = date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes(); let seconds = date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds(); // 拼接 return year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds; }

//将日期或时间戳转换为固定格式的字符串 export const dateConvert = (dateTime, pattern) => { let dateStr; pattern = pattern ? pattern : 'yyyy-MM-dd'; dateTime = dateTime ? new Date(dateTime) : new Date if (typeof dateTime == 'object' || typeof dateTime == 'number') { let year = dateTime.getFullYear(); let month = dateTime.getMonth() + 1 >= 10 ? dateTime.getMonth() + 1 : '0' + (dateTime.getMonth() + 1); let day = dateTime.getDate() >= 10 ? dateTime.getDate() : '0' + dateTime.getDate(); dateStr = year + '-' + month + '-' + day; } return dateStr; }

/** * @description: 时间的标准格式转年月 * @param {type} 标准格式 * @return {type} 年 月 */ export function YearMoMonth(date) { let Year = date.getFullYear(); //获取完整的年份(4位) let Month = date.getMonth() + 1 < 10 ? "0" + (date.getMonth() + 1) : date.getMonth() + 1; return Year + "-" + Month }

/* * @description:取得dang天的23:59:59 的 标准时间 * .toLocaleDateString() 可以把标准时间 转换为 yyyy/mm/dd */ export function nowLast() { return new Date(new Date(new Date().toLocaleDateString()).getTime() + 24 * 60 * 60 * 1000 - 1); } /* * @description: 取得当天 00:00:00的标准时间 */ export function nowStart() { return new Date(new Date().toLocaleDateString()) }

/** * @description: 获取当权月份的前/后 十二月 * @param {type} true 后十二个月 false 前十二个月 * @return {type} Array */ export function twelve(bool = true) { var dataArr = []; var data = new Date(); var year = data.getFullYear(); if (bool) { data.setMonth(data.getMonth() - 1, 1) //获取到当前月份,设置月份 } else { data.setMonth(data.getMonth() + 1, 1)//获取到当前月份,设置月份 }

for (var i = 0; i < 12; i++) {
    if (bool) {
        data.setMonth(data.getMonth() + 1); //每次循环一次 月份值减1
    } else {
        data.setMonth(data.getMonth() - 1);//每次循环一次 月份值减1
    }
    var m = data.getMonth() + 1;
    m = m < 10 ? "0" + m : m;
    dataArr.push(data.getFullYear() + "-" + (m))
}
console.log(dataArr);

}

/** * @description: 获取指定月份天数 * @param 年,月 * @return 天数 */ export function getMonthDays(year, month) { var date = new Date(year, month, 0) return date.getDate() } ```

2、操作json字符串

```javascript /** * @description: 去除json对象中的空对象 * @param {Object} json对象 * @return {Object}
*/ export function deleteEmptyProperty(json) { let obj = json for (var key in obj) { if (obj[key] == "" || obj[key] == null || obj[key] == NaN || obj[key] == []) { delete obj[key]; } } return obj; }

/** * @description: 合并json对象 * @param {type} * @return {type} */ export function mergeJsonObject(jsonbject1,jsonbject2) { let resultJsonObject = {}; for (var attr in jsonbject1) { resultJsonObject[attr] = jsonbject1[attr]; } for (var attr in jsonbject2) { resultJsonObject[attr] = jsonbject2[attr]; } return resultJsonObject; } ```

3、获取URL路径后面的参数

```javascript /* * @Author: * @Date: 2020-10-23 10:18:54 * @LastEditors: * @LastEditTime: 2020-10-23 11:46:14 * @FilePath: /we-chat/src/utils/obtainUrlParameter.js * @Description: 获取url里面传过来的参数,并且 把他变成 json对象 * 参看教程:https://www.w3cschool.cn/json/1koy1piy.html * 参考博客:https://juejin.cn/post/6844903856556474381 * * split() 方法用于把一个字符串分割成字符串数组 / /* * @description: 把url参数 转换为json对象(但是# 后面的 都不会解析 ),所以在 Vue 中 history模式可以使用,但是 hash模式 他会返回一个空 * @param {type} 路径 || 在页面或者组件里面调用,他会自己取的当前页面路径 * @return {type} Object 注:无参数的时候,返回一个json */ export function getAllUrlParams(url) { // 用JS拿到URL,如果函数接收了URL,那就用函数的参数。如果没传参,就使用当前页面的URL var queryString = url ? url.split('?')[1] : window.location.search.slice(1); // 用来存储我们所有的参数 var obj = {}; // 如果没有传参,返回一个空对象 if (!queryString) { return obj; } // stuff after # is not part of query string, so get rid of it queryString = queryString.split('#')[0]; // 将参数分成数组 var arr = queryString.split('&'); for (var i = 0; i < arr.length; i++) { // 分离成key:value的形式 var a = arr[i].split('='); // 将undefined标记为true var paramName = a[0]; var paramValue = typeof(a[1]) === 'undefined' ? true : a[1]; // 如果调用对象时要求大小写区分,可删除这两行代码 paramName = paramName.toLowerCase(); if (typeof paramValue === 'string') paramValue = paramValue.toLowerCase(); // 如果paramName以方括号结束, e.g. colors[] or colors[2] if (paramName.match(/[(\d+)?]$/)) { // 如果paramName不存在,则创建key var key = paramName.replace(/[(\d+)?]/, ''); if (!obj[key]) obj[key] = []; // 如果是索引数组 e.g. colors[2] if (paramName.match(/[\d+]$/)) { // 获取索引值并在对应的位置添加值 var index = /[(\d+)]/.exec(paramName)[1]; obj[key][index] = paramValue; } else { // 如果是其它的类型,也放到数组中 obj[key].push(paramValue); } } else { // 处理字符串类型 if (!obj[paramName]) { // 如果如果paramName不存在,则创建对象的属性 obj[paramName] = paramValue; } else if (obj[paramName] && typeof obj[paramName] === 'string') { // 如果属性存在,并且是个字符串,那么就转换为数组 obj[paramName] = [obj[paramName]]; obj[paramName].push(paramValue); } else { // 如果是其它的类型,还是往数组里丢 obj[paramName].push(paramValue); } } } return obj; }

/** * @description: 这个所有模式下 都可以使用,他会 取得 ? 号后面的 所有内容 * @param {type} 路径 || 在页面或者组件里面调用,他会自己取的当前页面路径 * @return {type} Object 注:无参数的时候,返回一个空json */ export function parseQueryString(url) { // console.log(url); var queryString = url ? url.split('?')[1] : window.location.href; var obj = {}; //这个 去查找是否,传了参数过来 if (!queryString.indexOf("?")) { return obj; } var keyvalue = []; var key = "", value = ""; var paraString = queryString.substring(queryString.indexOf("?") + 1, queryString.length).split("&"); for (var i in paraString) { keyvalue = paraString[i].split("="); key = keyvalue[0]; value = keyvalue[1]; obj[key] = value; } return obj; } ```

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值