js时间转换

87 阅读1分钟

1.时间格式化

function parseTime(time, cFormat) {
	if (arguments.length === 0 || !time) {
		return null
	}
	const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'
	let date
	if (typeof time === 'object') {
		date = time
	} else {
		if ((typeof time === 'string')) {
			if ((/^[0-9]+$/.test(time))) {
				time = parseInt(time)
			} else {
				=
				time = time.replace(new RegExp(/-/gm), '/')
			}
		}

		if ((typeof time === 'number') && (time.toString()
			.length === 10)) {
			time = time * 1000
		}
		date = new Date(time)
	}
	const formatObj = {
		y: date.getFullYear(),
		m: date.getMonth() + 1,
		d: date.getDate(),
		h: date.getHours(),
		i: date.getMinutes(),
		s: date.getSeconds(),
		a: date.getDay()
	}
	const timeStr = format.replace(/{([ymdhisa])+}/g, (result, key) => {
		const value = formatObj[key]
		// Note: getDay() returns 0 on Sunday
		if (key === 'a') {
			return ['日', '一', '二', '三', '四', '五', '六'][value]
		}
		return value.toString().padStart(2, '0')
	})
	return timeStr
}

2.获取未来时间,0是第一天

function getFutureTime(d) {
	var date1 = new Date(),
		time1 = date1.getFullYear() + "-" + (date1.getMonth() + 1) + "-" + date1.getDate(); //time1表示当前时间
	var date2 = new Date(date1);
	date2.setDate(date1.getDate() + d);
	var time2 = date2.getFullYear() + "-" + (date2.getMonth() + 1) + "-" + date2.getDate();
	return time2
}

3.获取开始时间和结束时间中间的所有日期 格式:yyyy-mm-dd

function formatDateList(startDate, endDate) {
	let sdStr = new Date(startDate);
	let sdDate = sdStr.getTime();
	let edStr = new Date(endDate);
	let edDate = edStr.getTime();
	let temp = sdStr;
	let str = "";
	for (let i = sdDate; i <= edDate; i += 86400000) {
		str = str + "," + parseTime(temp, "{y}-{m}-{d}");
		temp.setDate(temp.getDate() + 1);
	}
	return str.split(",").splice(1);
}

4.获取月份 格式yyyy-mm-dd

function funMonth(data) {
	let date = new Date(data);
	let m = date.getMonth();
	let chinese = ["一", "二", "三", "四", "五", "六", "七", "八", "九", "十", "十一", "十二"];
	return chinese[m] + "月";
}