js开头:
/**
* JavaScript 基础工具类,存放公共函数
*/
var base_utils = base_utils || {};
时间类型的:
/**
* 获取几天前的时间
* @param n 天数
* @returns yyyy-MM-dd
*/
base_utils.getBeforeDate = function(n){
var date = new Date();
var year,month,day;
date.setDate(date.getDate()-parseInt(n));
year = date.getFullYear();
month = date.getMonth()+1;
day = date.getDate();
str = year + '-' + (month < 10 ? ('0' + month) : month) + '-' + (day < 10 ? ('0' + day) : day);
return str;
}
/**
* 获取几天前的时间 2
* @param n 天数
* @param dateStr 指定时间如: '2019-01-01'
* @returns yyyy-MM-dd
*/
base_utils.getBeforeDateForDate = function(n,dateStr){
var date = new Date(dateStr);
var year,month,day;
date.setDate(date.getDate()-parseInt(n));
year = date.getFullYear();
month = date.getMonth()+1;
day = date.getDate();
str = year + '-' + (month < 10 ? ('0' + month) : month) + '-' + (day < 10 ? ('0' + day) : day);
return str;
}
/**
* 时间戳 转 日期
* @param n 时间戳数字
* @returns yyyy-MM-dd
*/
base_utils.timestampToDate = function(n){
var timestamp = 0;
if((n+'').length == 10){
// Unix时间戳处理
timestamp = parseInt(n)*1000;
}else{
timestamp = parseInt(n);
}
var date = new Date(timestamp);
var year,month,day;
year = date.getFullYear();
month = date.getMonth()+1;
day = date.getDate();
str = year + '-' + (month < 10 ? ('0' + month) : month) + '-' + (day < 10 ? ('0' + day) : day);
return str;
}
/**
* 时间戳 转 时期时间
* @param n 时间戳数字
* @returns yyyy-MM-dd HH:mm:ss
*/
base_utils.timestampToDateTime = function(n){
var timestamp = 0;
if((n+'').length == 10){
// Unix时间戳处理
timestamp = parseInt(n)*1000;
}else{
timestamp = parseInt(n);
}
var date = new Date(timestamp);
var year,month,day,hour,minute,second;
year = date.getFullYear();
month = (date.getMonth()+1) < 10 ? ('0'+(date.getMonth()+1)) : (date.getMonth()+1);
day = date.getDate() < 10 ? ('0'+date.getDate()) : date.getDate();
hour = date.getHours() < 10 ? ('0'+date.getHours()) : date.getHours();
minute = date.getMinutes() < 10 ? ('0'+date.getMinutes()) : date.getMinutes();
second = date.getSeconds() < 10 ? ('0'+date.getSeconds()) : date.getSeconds();
str = year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second;
return str;
}
/**
* 返回指定format的string
* 例如:format eg:'yyyy-MM-dd HH:mm:ss'
**/
Date.prototype.format = function(format) {
var o = {
"M+": this.getMonth() + 1,
"d+": this.getDate(),
"H+": this.getHours(), //24小时
"m+": this.getMinutes(),
"s+": this.getSeconds(),
"q+": Math.floor((this.getMonth() + 3) / 3), //季度
"S": this.getMilliseconds() //毫秒
}
if (/(y+)/.test(format)) {
format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
}
for (var k in o) {
if (new RegExp("(" + k + ")").test(format)) {
format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
}
}
return format;
}
字符串、数组、对象 判断是否为空:
/**
* 判断字符是否为空
* @param str 字符串
* @returns {boolean} true:为空
*/
base_utils.isStrEmpty = function(str){
if(typeof str == "undefined" || str == null || str.trim() == ""){
return true;
}else{
return false;
}
}
/**
* 判断数组是否为空
* @param array 数组[]
* @returns {boolean} true:为空 error:错误
*/
base_utils.isArrayEmpty = function(array){
let flag = Object.prototype.toString.call(array) === "[object Array]";
if(!flag){
console.error('参数错误,请输入 数组类型');
return 'error';
}
if (typeof array == undefined || array.length == 0) {
return true;
}else{
return false;
}
}
/**
* 判断对象是否为空
* @param obj 对象{}
* @returns {boolean} true:为空 error:错误
*/
base_utils.isObjectEmpty = function(obj){
let flag = Object.prototype.toString.call(obj) === "[object Object]";
if(!flag){
console.error('参数错误,请输入 对象类型');
return 'error';
}
return JSON.stringify(obj) == "{}";
}
字符串的:
/**
* String字符串占位符处理
* js实现占位符 比如:"天气{0}".format("热");
* @returns {String} 返回:天气热
*/
String.prototype.format = function() {
if(arguments.length == 0) return this;
var param = arguments[0];
var s = this;
if(typeof(param) == 'object') {
for(var key in param)
s = s.replace(new RegExp("\\{" + key + "\\}", "g"), param[key]);
return s;
} else {
for(var i = 0; i < arguments.length; i++)
s = s.replace(new RegExp("\\{" + i + "\\}", "g"), arguments[i]);
return s;
}
}
深度copy对象的:
/**
* js对象深度copy,复杂情况也不会发生引用
* @param oldObj
* @returns 新对象
*/
base_utils.objDeepCopy = function (oldObj) {
let newObj = oldObj instanceof Array ? [] : {};
for (let item in oldObj) {
newObj[item] = typeof oldObj[item] === 'object' ? base_utils.objDeepCopy(oldObj[item]) : oldObj[item];
}
return newObj;
}
目前先整理这些,后续有补充可以再加上。