这是我参与更文挑战的第6天,活动详情查看:更文挑战
// 获取今天的日期
export const getNowDate = () => {
let myDate = new Date()
let yyyy = myDate.getFullYear() //取四位年份
let MM = myDate.getMonth() + 1 //取月份
let dd = myDate.getDate() //取日
if (MM < 10) MM = '0' + MM
if (dd < 10) dd = '0' + dd
return yyyy + '-' + MM + '-' + dd
}
/**
* 时间格式化
* 例如:formatDate(new Date(),'yyyy-MM-dd')
yyyy-MM-dd hh:mm:ss
* */
export const formatDate = (date, fmt) => {
let o = {
'M+': date.getMonth() + 1, // 月份
'd+': date.getDate(), // 日
'h+': date.getHours(), // 小时
'm+': date.getMinutes(), // 分
's+': date.getSeconds(), // 秒
'S': date.getMilliseconds() // 毫秒
}
if (/(y+)/.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
}
for (var 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 fmt
}
/**
* 格式化时间与当前时间差
* @param {String} item 一个由逗号连接的包含一个或多个CSS选择器的字符串
* @return {NodeList} 一个non-live的 NodeList 类型的对象
* @public
*/
export const diffTime = item => {
var nowTime = new Date().getTime();
var minuteTime = 60 * 1000;
var hourTime = 60 * minuteTime;
var dayTime = 24 * hourTime;
var monthTime = dayTime * 30;
var yearTime = monthTime * 12;
var publishTime = new Date(item).getTime();
var historyTime = parseInt(nowTime) - parseInt(publishTime);
var descTime;
if (historyTime >= yearTime) {
// 按年算
descTime = parseInt(historyTime / yearTime) + '年前';
} else if (historyTime < yearTime && historyTime >= monthTime) {
// 按月算
descTime = parseInt(historyTime / monthTime) + '月前';
} else if (historyTime < monthTime && historyTime >= dayTime) {
// 按天算
descTime = parseInt(historyTime / dayTime) + '天前';
} else if (historyTime < dayTime && historyTime >= hourTime) {
// 按小时算
descTime = parseInt(historyTime / hourTime) + '小时前';
} else if (historyTime < hourTime && historyTime >= minuteTime) {
// 按分钟算
descTime = parseInt(historyTime / minuteTime) + '分钟前';
} else {
descTime = '刚刚';
}
return descTime;
};
/********
* 判断两个时间段是否有交集
* @param dateRange1/dateRange2 [开始时间(2018-04-12), 结束时间[2018-05-16]]
* 返回:2018-04-12 12:55:25
*/
export const dateRangeIntersection = (dateRange1, dateRange2)=> {
let beginTime1 = new Date(dateRange1[0]).getTime()
let endTime1 = new Date(dateRange1[1]).getTime()
let beginTime2 = new Date(dateRange2[0]).getTime()
let endTime2 = new Date(dateRange2[1]).getTime()
if ((beginTime1 >= endTime2) || (endTime1 <= beginTime2)) {
return false
}
return true
}
/**
* 获取url参数
* @param {Object} name 想要的参数名
* 如果没有取到,返回的是null
*/
export const getQueryString = (name)=> {
var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
var r = window.location.search.substr(1).match(reg);
if (r != null) return unescape(r[2]);
return null;
}
/*******************
* 多层深拷贝-object和array都可以
*/
export const copyDeep = (origin) =>{
if (origin instanceof Object) {
if (isArray(origin)) {
var targetArr = []
for (var i = 0; i < origin.length; i++) {
targetArr.push(copyDeep(origin[i]))
}
return targetArr
} else {
var targetObj = {}
for (var item in origin) {
targetObj[item] = copyDeep(origin[item])
}
return targetObj
}
} else {
return origin
}
function isArray (value) {
return !!value && value instanceof Array
}
}
/**
* 返回小数点2位
*/
export const mycurrency1 = (value) => {
value = value || '0.00';
return parseFloat(value.toString()).toFixed(2);
};