前端处理后端Date数据的date.js文件

 前端所用的date.js文件。可直接使用,也可微调再进行使用。

// date.js

// 处理Date数据
export function formatDate(date, fmt) {
	if (/(y+)/.test(fmt)) {
		fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
	}
	let o = {
		'M+': (date.getMonth() + 1),
		'd+': date.getDate(),
		'h+': date.getHours(),
		'm+': date.getMinutes(),
		's+': date.getSeconds()
	};
	for (let k in o) {
		if (new RegExp(`(${k})`).test(fmt)) {
			let str = o[k] + '';
			fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? str : padLeftZero(str));
		}
	}
	return fmt;
}

function padLeftZero(str) {
	return ('00' + str).substr(str.length);
}

export function str2Date(dateStr, separator) {
	if (!separator) {
		separator = "-";
	}
	let dateArr = dateStr.split(separator);
	let year = parseInt(dateArr[0]);
	let month;
	//处理月份为04这样的情况
	if (dateArr[1].indexOf("0") == 0) {
		month = parseInt(dateArr[1].substring(1));
	} else {
		month = parseInt(dateArr[1]);
	}
	let day = parseInt(dateArr[2]);
	let date = new Date(year, month - 1, day);
	return date;
}


/**
 * 计算两个日期相隔年限,用于计算年龄等
 * @param {Object} date1
 * @param {Object} date2
 */
export function calYear(date1, date2) {
	let a = new Date(date1).getFullYear();
	let b = new Date(date2).getFullYear();
	return b - a;
}

/**
 * 计算两个日期相隔年限,用于计算年龄等
 * @param {Object} date1
 * @param {Object} date2
 */
export function calCurrentYear(date) {
	let b = new Date().getFullYear();
	date = new Date(date).getFullYear()
	return b - date;
}


/**
 * 计算两个日期相隔日期,用于计算天数等,开始跟结尾只包含了一天
 * @param {Object} date1
 * @param {Object} date2
 */
export function calDay(date1, date2) {
	let a = new Date(date1).getTime();
	let b = new Date(date2).getTime();
	let diff = b - a;
	let diffDay = diff / (1000 * 60 * 60 * 24)
	return parseInt(diffDay);
}

样例1:

const formatData = () => {
	let time = "2020-09-25 22:48:10"
	let date = new Date(time)
	let dateTime= formatDate(date, 'yyyy-MM-dd')
}

结果1:

2020-09-25

样例2:

const formatData = () => {
	let time = "2020-09-25 22:48:10"
	let date = new Date(time)
	let test = formatDate(date, 'yyyy-MM-dd hh:ss:mm')
}

结果2:

2020-09-25 22:10:48

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值