通用JS系列-时间相关梳理

264 阅读2分钟

自己整理出的一套JS通用相关的东西,比如时间处理,常用正则处理等,方面后期自己新建项目用,如果有需要的也可以看看,避免重复造轮子。

获取本地时间

/**
 * 
 * 获取本地时间
 * @method toLocalTime
 * @param {String}[val = ''] val-需要转换的时间.
 * 
 */
function toLocalTime (val) {
	let datetime = val ? new Date(val) : new Date();
	let year = datetime.getFullYear();
	let month = datetime.getMonth();
	let day = datetime.getDate();
	let hour = datetime.getHours();
	let minute = datetime.getMinutes();
	let second = datetime.getSeconds();
	let result = year + '-' + formatTimeNumber(month + 1) + '-' + formatTimeNumber(day) + ' ' + formatTimeNumber(hour) + ':' + formatTimeNumber(minute) + ':' + formatTimeNumber(second);
	return result;
}

/**
 * 
 * 格式化时间数字
 * @method formatTimeNumber
 * @param {Number}[value] value-需要转换的数字.
 * 
 */
function formatTimeNumber (value) {
  return value < 10 ? '0' + value : value + '';
}

获取某个月有多少天

/**
 * 
 * 获取某个月有多少天
 * @method getDays
 * @param {Number} year-年份
 *        {Number} month-月份
 * 
 */
function getDays (year, month) {
	return new Date(year, month, 0).getDate();
}

获取指定日期的星期数

/**
 * 
 * 获取指定日期的星期数
 * @method dayOfWeek
 * @param {String}[val = ''] val-需要转换的时间.
 */
function dayOfWeek (val) {
	let datetime = val ? new Date(val) : new Date();
	return datetime.getDay() == 0 ? 7 : datetime.getDay();
}

获取指定日期当周的开始时间

/**
 * 
 * 获取指定日期当周的开始时间
 * @method timeOfStartWeek
 * @param {String}[val = ''] val-需要转换的时间.
 */
function timeOfStartWeek (val) {
	let datetime = val ? new Date(val) : new Date();
	return toLocalTime(new Date(datetime.getFullYear(), datetime.getMonth(), datetime.getDate() - dayOfWeek(datetime) + 1)).slice(0, 10);
}

获取指定日期当周的结束时间

/**
 * 
 * 获取指定日期当周的结束时间
 * @method timeOfEndWeek
 * @param {String}[val = ''] val-需要转换的时间.
 */
function timeOfEndWeek (val) {
	let datetime = val ? new Date(val) : new Date();
	return toLocalTime(new Date(datetime.getFullYear(), datetime.getMonth(), datetime.getDate() + (7 - dayOfWeek(datetime)))).slice(0, 10);
}

获取指定日期当月的第一天

/**
 * 获取指定日期当月的第一天
 * @method monthOfStartDate
 * @param {String}[val = ''] val-需要转换的时间.
 */
function monthOfStartDate (val) {
	let datetime = val ? new Date(val) : new Date();
	return toLocalTime(new Date(datetime.getFullYear(), datetime.getMonth(), 1)).slice(0, 10);
}

获取指定日期当月的最后一天

/**
 * 
 * 获取指定日期当月的最后一天
 * @method monthOfStartDate
 * @param {String}[val = ''] val-需要转换的时间.
 */
function monthOfEndDate (val) {
	let datetime = val ? new Date(val) : new Date();
	let days = getDays(datetime.getFullYear(), datetime.getMonth() + 1);
	return toLocalTime(new Date(datetime.getFullYear(), datetime.getMonth(), days)).slice(0, 10);
}

时间这一部分整理的东西暂时就这些,后期有需要会继续整理的。通用JS系列的文档会不定时更新的,谢谢!