实用的utils工具封装

返回指定天数的年月日

// console.log("半年前:"+getDateStr(-180));
// console.log("三月前:"+getDateStr(-90));
// console.log("一月前:"+getDateStr(-30));
// console.log("昨天:"+getDateStr(-1));
// console.log("今天:"+getDateStr(0));
// console.log("明天:"+getDateStr(1));
// console.log("后天:"+getDateStr(2));
// console.log("一月后:"+getDateStr(30));
// console.log("三月后:"+getDateStr(90));
// console.log("半年后:"+getDateStr(180)); 
export function getDateStr(dayCount) {
	var dd = new Date();
	dd.setDate(dd.getDate() + dayCount); //获取dayCount天后的日期
	var y = dd.getFullYear();
	var m = (dd.getMonth() + 1) < 10 ? "0" + (dd.getMonth() + 1) : (dd.getMonth() + 1); //获取当前月份的日期,不足10补0
	var d = dd.getDate() < 10 ? "0" + dd.getDate() : dd.getDate(); //获取当前几号,不足10补0
	return y + "-" + m + "-" + d;
}

获取某月总天数

export function getDayNum(year, month) {
	let d = new Date(year, month, 0);
	return d.getDate();
};

返回多少月之前的所有月份

export function getRecentMonth(n) {
	let nowDate = new Date()
	let array = []
	let year = nowDate.getFullYear()
	let mon = nowDate.getMonth() + 1
	for (let i = 0; i < n; i++) {
		mon = mon - 1
		if (mon <= 0) {
			year = year - 1
			mon = mon + 12
		}
		if (mon < 10) {
			mon = '0' + mon
		}
		array[i] = year + '-' + mon
	}
	return array
}

返回某天是星期几

export function getWeek(date) {
	let dt2 = new Date(date);
	var weekDay = ["星期天", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"];
	if (weekDay.indexOf(weekDay[dt2.getDay()]) > -1) {
		return {
			weekStr: weekDay[dt2.getDay()],
			weekNum: dt2.getDay()
		}
	}
	return ''
};

计算两点间直线距离

/**
 * 计算两点间直线距离
 * @param a 表示纬度差
 * @param b 表示经度差
 * @param lat 表示经度
 * @param lng 表示经度
 * @return 返回的是距离,单位m
 */
export function getDistance(latFrom, lngFrom, latTo, lngTo) {
	var rad = function(d) { //计算角度
		return d * Math.PI / 180.0;
	}
	var EARTH_RADIUS = 6378136.49;
	var radLatFrom = rad(latFrom);
	var radLatTo = rad(latTo);
	var a = radLatFrom - radLatTo;
	var b = rad(lngFrom) - rad(lngTo);
	var distance = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLatFrom) * Math.cos(radLatTo) *
		Math.pow(Math.sin(b / 2), 2)));
	distance = distance * EARTH_RADIUS;
	distance = Math.round(distance * 10000) / 10000;
	return parseFloat(distance.toFixed(0));
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值