1. 程式人生 > >js 獲取當月的第一天和最後一天 & 日期格式化 & 獲取距離上次的時間間隔

js 獲取當月的第一天和最後一天 & 日期格式化 & 獲取距離上次的時間間隔

1獲取當月的第一天

function getCurrentMonthFirst() {
	var date = new Date()
	date.setDate(1)
	return date
}

2.獲取當月的最後一天

function getCurrentMonthLast() { 
	var date = new Date(); 
	var currentMonth = date.getMonth(); 
	var nextMonth = ++currentMonth; 
	var nextMonthFirstDay = new Date(date.getFullYear(), nextMonth, 1); 
	var oneDay = 1000 * 60 * 60 * 24; 
	return new Date(nextMonthFirstDay - oneDay);
}

3.日期格式化

function format(fmt, date) {
      var o = {
        "M+": date.getMonth() + 1, //月份   
           "d+": date.getDate(), //日   
           "h+": date.getHours(), //小時   
           "m+": date.getMinutes(), //分   
           "s+": date.getSeconds(), //秒   
           "q+": Math.floor((date.getMonth() + 3) / 3), //季度   
           "S": date.getMilliseconds() //毫秒   
       };
       if (/(y+)/.test(fmt))
           fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
       for (var k in o)
           if (new RegExp("(" + k + ")").test(fmt))
               fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
       return fmt;
}

var times = new Date
console.log(times)
console.log(format('yyyy-MM-dd hh:mm:ss', times))
console.log(format('yyyy-MM-dd', times))
console.log(format('yyyy/MM/dd', times))
console.log(format('yyyy年MM月dd日', times))

4.獲取距離上次的時間間距

 function getDateDiff(time) {
	  time = Date.parse(time.replace(/-/gi, '/'))
	  const minute = 1000 * 60
	  const hour = minute * 60
	  const day = hour * 24
	  const month = day * 30
	  const now = new Date().getTime()
	  const diffValue = now - time
	  if (diffValue < 0) {
	    return
	  }
	  const monthC = diffValue / month
	  const weekC = diffValue / (7 * day)
	  const dayC = diffValue / day
	  const hourC = diffValue / hour
	  const minC = diffValue / minute
	  if (monthC >= 1) {
	    return '' + parseInt(monthC) + '月前'
	  } else if (weekC >= 1) {
	    return '' + parseInt(weekC) + '周前'
	  } else if (dayC >= 1) {
	    return '' + parseInt(dayC) + '天前'
	  } else if (hourC >= 1) {
	    return '' + parseInt(hourC) + '小時前'
	  } else if (minC >= 1) {
	    return '' + parseInt(minC) + '分鐘前'
	  } else {
	    return '剛剛'
	  }
}
console.log(getDateDiff('2018-09-07 14:46:55'))
 引數 time 為標準時間格式 yyyy-MM-dd hh:mm:ss  yyyy-MM-dd