JS操作日期的工具类(获取本周、本月、本季度、本年、时间戳格式化方法)

在web项目中经常会处理前台的时间操作,以下提供一个日期操作的工具类,方便前端对日期操作的使用,代码如下

 提供的方法有:

  1. formatDateTime(dateTimeStemp, type)//时间戳转换成日期字符串 ,不传第二个参数返回年月日,传第二个参数返回年月日时分秒
  2. getMonthDays(month)//获得某月的天数
  3. getQuarterStartMonth() //获得本季度的开端月份
  4. getWeekStartDate() //获得本周的开端日期
  5. getWeekEndDate() //获得本周的停止日期
  6. getMonthStartDate()//获得本月的开端日期
  7. getMonthEndDate() //获得本月的停止日期
  8. getLastMonthStartDate() //获得上月开端日期
  9. getQuarterStartDate() //获得本季度的开端日期
  10. getQuarterEndDate() //获得本季度的停止日期
  11. getYearStartDate() // 获得本年开始日期
  12. getYearEndDate() // 获得本年结束日期
var now = new Date(); //当前日期
var nowDayOfWeek = now.getDay(); //今天本周的第几天
var nowDay = now.getDate(); //当前日
var nowMonth = now.getMonth(); //当前月
var nowYear = now.getYear(); //当前年
nowYear += (nowYear < 2000) ? 1900 : 0; //

var lastMonthDate = new Date(); //上月日期
lastMonthDate.setDate(1);
lastMonthDate.setMonth(lastMonthDate.getMonth()-1);
var lastYear = lastMonthDate.getYear();
var lastMonth = lastMonthDate.getMonth();

/*时间戳改日期--不传第二个参数返回年月日,传第二个参数返回年月日时分秒*/
function formatDateTime(inputTime, type) {
	var date = new Date(inputTime);
    var y = date.getFullYear();
    var m = date.getMonth() + 1;
    m = m < 10 ? ('0' + m) : m;
    var d = date.getDate();
    d = d < 10 ? ('0' + d) : d;
    var h = date.getHours();
    h = h < 10 ? ('0' + h) : h;
    var minute = date.getMinutes();
    var second = date.getSeconds();
    minute = minute < 10 ? ('0' + minute) : minute;
    second = second < 10 ? ('0' + second) : second;
    if(type) {
    	return y + '-' + m + '-' + d+' '+h+':'+minute+':'+second;//2017-12-12 12:23:34    
    } else {
    	return y + '-' + m + '-' + d; //2017-12-12
    }
}


//格局化日期:yyyy-MM-dd
function formatDate(date) {
	var myyear = date.getFullYear();
	var mymonth = date.getMonth()+1;
	var myweekday = date.getDate();

	if(mymonth < 10){
		mymonth = "0" + mymonth;
	}
	if(myweekday < 10){
		myweekday = "0" + myweekday;
	}
	return (myyear+"-"+mymonth + "-" + myweekday);
}

//获得某月的天数
function getMonthDays(myMonth){
	var monthStartDate = new Date(nowYear, myMonth, 1);
	var monthEndDate = new Date(nowYear, myMonth + 1, 1);
	var days = (monthEndDate - monthStartDate)/(1000 * 60 * 60 * 24);
	return days;
}

//获得本季度的开端月份
function getQuarterStartMonth(){
	var quarterStartMonth = 0;
	if(nowMonth<3){
		quarterStartMonth = 0;
	}
	if(2<nowMonth && nowMonth<6){
		quarterStartMonth = 3;
	}
	if(5<nowMonth && nowMonth<9){
		quarterStartMonth = 6;
	}
	if(nowMonth>8){
		quarterStartMonth = 9;
	}
	return quarterStartMonth;
}

//获得本周的开端日期
function getWeekStartDate() {
	var weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek + 1);
	return formatDate(weekStartDate);
}

//获得本周的停止日期
function getWeekEndDate() {
	var weekEndDate = new Date(nowYear, nowMonth, nowDay + (7 - nowDayOfWeek));
	return formatDate(weekEndDate);
}

//获得本月的开端日期
function getMonthStartDate(){
	var monthStartDate = new Date(nowYear, nowMonth, 1);
	return formatDate(monthStartDate);
}

//获得本月的停止日期
function getMonthEndDate(){
	var monthEndDate = new Date(nowYear, nowMonth, getMonthDays(nowMonth));
	return formatDate(monthEndDate);
}

//获得上月开端时候
function getLastMonthStartDate(){
	var lastMonthStartDate = new Date(nowYear, lastMonth, 1);
	return formatDate(lastMonthStartDate);
}

//获得上月停止时候
function getLastMonthEndDate(){
	var lastMonthEndDate = new Date(nowYear, lastMonth, getMonthDays(lastMonth));
	return formatDate(lastMonthEndDate);
}

//获得本季度的开端日期
function getQuarterStartDate(){

	var quarterStartDate = new Date(nowYear, getQuarterStartMonth(), 1);
	return formatDate(quarterStartDate);
}

//或的本季度的停止日期
function getQuarterEndDate(){
	var quarterEndMonth = getQuarterStartMonth() + 2;
	var quarterStartDate = new Date(nowYear, quarterEndMonth, getMonthDays(quarterEndMonth));
	return formatDate(quarterStartDate);
}

// 获得本年开始日期
function getYearStartDate(){
	var yearStartDate = new Date(nowYear, 0, 1);
	return formatDate(yearStartDate);
}
// 获得本年结束日期
function getYearEndDate(){
	var yearEndDate = new Date(nowYear, 11, 1);
	return formatDate(yearEndDate);
}

猜你喜欢

转载自blog.csdn.net/javaYouCome/article/details/90204751
今日推荐