js - 封裝常用的公共方法
阿新 • • 發佈:2021-04-24
【獲取當前時間的年月日 時分秒】
function getTime() {
var date = new Date();
var year = date.getFullYear();
var month = date.getMonth() + 1;
var day = date.getDate()
var hours = date.getHours(); //時
var minutes = date.getMinutes(); //分
var seconds = date.getSeconds(); //秒
month = month < 10 ? '0' + month : month;
day = day < 10 ? '0' + day : day
hours = hours < 10 ? '0' + hours : hours
minutes = minutes < 10 ? '0' + minutes : minutes
seconds = seconds < 10 ? '0' + seconds : seconds
return year + "-" + month + "-" + day + " " + hours + ":" + minutes + ":" + seconds
}
getTime() //2021-04-22 09:46:53
【獲取當時間的之後或者之前的幾天】
function getDays(num) {
var date = new Date();
date.setDate(date.getDate() + num) //當使用setDate()之後,date物件就發生了改變,所以之後getDate()就能獲取到指定的日期
let year = date.getFullYear() //年
let month = date.getMonth() + 1 //月
let day = date.getDate(); //天數
if (month >= 1 && month <= 9) {
month = `0${month}`
}
if (day >= 1 && day <= 9) {
day = `0${day}`
}
return `${year}-${month}-${day}`
}
getDays(1);
【封裝函式自動判斷平年閏年和各月天數,返回當前月的天數】
function getDaysOfEveryMonth(year, month) {
var baseMonthsDay = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; //各月天數
var thisYear = year; //今年
var thisMonth = month; //本月
var thisMonthDays; //這個月的天數變數儲存
//判斷是閏年嗎?閏年2月29天
function isRunYear(fullYear) {
return (fullYear % 4 == 0 && (fullYear % 100 != 0 || fullYear % 400 == 0));
}
if (isRunYear(thisYear) && thisMonth == 2) { //閏年2月29天
thisMonthDays = baseMonthsDay[1] + 1
} else {
thisMonthDays = baseMonthsDay[thisMonth - 1];
}
return thisMonthDays;
}
getDaysOfEveryMonth(2021,4);
【獲取url後邊引數的引數值】
function getParamsName(attr) {
var url = 'baidu.com?name=冠軍&age=18&province=山西' //location.href;
var params = url.split('?')[1];
var paramsObj = {};
if (params) {
var paramsList = params.split('&') || [];
for (var i = 0; i < paramsList.length; i++) {
var item = paramsList[i].split('=') || [];
paramsObj[item[0]] = item[1];
}
}
return decodeURIComponent(paramsObj[attr]);
}
getParamsName('name') //冠軍
【數字千分位】
function toFormat(num) {
num = Number(num);
return num.toLocaleString();
}
toFormat(138000); //138,000
【手機號驗證】
function isPhoneNumber(tel) {
var reg = /^0?1[3|4|5|6|7|8|9][0-9]\d{8}$/;
return reg.test(tel);
}
【陣列去重】
//方法一:
function uniq_one(arr) {
return [...new Set(arr)]
}
uniq_one(arr)
//方法二:
function uniq_two(arr) {
var uniq = [];
for (var i = 0; i < arr.length; i++) {
if (uniq.indexOf(arr[i]) == -1) {
uniq.push(arr[i]);
}
}
return uniq;
}
uniq_two(arr);
【兩個陣列對比,去除相同元素,得到新陣列】
function getArrUnequal(arr1, arr2) {
let list = arr2.filter(items => { //filter 它用於把Array的某些元素過濾掉,然後返回剩下的元素
if (!arr1.includes(items))
return items;
})
return list;
}
getArrUnequal(arr1, arr2);
【兩個陣列對比,取出相同元素,得到新陣列】
function getArrEqual(arr1, arr2) {
let newArr = [];
for (var i = 0; i < arr1.length; i++) {
for (var j = 0; j < arr2.length; j++) {
if (arr1[i] == arr2[j]) {
newArr.push(arr1[i])
}
}
}
return newArr;
}
getArrEqual(arr1, arr2);