1. 程式人生 > 其它 >vue js 根據時間開始日期 結束日期 算出中間有多少天,和每天的日期

vue js 根據時間開始日期 結束日期 算出中間有多少天,和每天的日期

技術標籤:js vue獲取兩個日期之間的天數和日期jsvue.jsjavascript

// 計算續住的總日期列表
		getAll(begin, end) {
			let arr1 = begin.split("-");   //這裡可以換成/  就2020/01/1 這種
			let arr2 = end.split("-");
			let arr1_ = new Date();
			let arrTime = [];
			arr1_.setUTCFullYear(arr1[0], arr1[1] - 1, arr1[2]);
			let arr2_ = new Date();
			arr2_.setUTCFullYear(arr2[0], arr2[1] - 1, arr2[2]);
			let unixDb = arr1_.getTime();
			let unixDe = arr2_.getTime();
			for (let k = unixDb; k <= unixDe;) {
				arrTime.push(this.datetimeparse(k, 'YY-MM-DD'));
				k = k + 24 * 60 * 60 * 1000;
			}
			return arrTime;
		},
		// 時間格式處理
	datetimeparse(timestamp, format, prefix) {
			if (typeof timestamp == 'string') {
				timestamp = Number(timestamp)
			};
			//轉換時區
			let currentZoneTime = new Date(timestamp);
			let currentTimestamp = currentZoneTime.getTime();
			let offsetZone = currentZoneTime.getTimezoneOffset() / 60; //如果offsetZone>0是西區,西區晚
			let offset = null;
			//客戶端時間與伺服器時間保持一致,固定北京時間東八區。
			offset = offsetZone + 8;
			currentTimestamp = currentTimestamp + offset * 3600 * 1000

			let newtimestamp = null;
			if (currentTimestamp) {
				if (currentTimestamp.toString().length === 13) {
					newtimestamp = currentTimestamp.toString()
				} else if (currentTimestamp.toString().length === 10) {
					newtimestamp = currentTimestamp + '000'
				} else {
					newtimestamp = null
				}
			} else {
				newtimestamp = null
			};
			let dateobj = newtimestamp ? new Date(parseInt(newtimestamp)) : new Date()
			let YYYY = dateobj.getFullYear()
			let MM = dateobj.getMonth() > 8 ? dateobj.getMonth() + 1 : '0' + (dateobj.getMonth() + 1)
			let DD = dateobj.getDate() > 9 ? dateobj.getDate() : '0' + dateobj.getDate()
			let HH = dateobj.getHours() > 9 ? dateobj.getHours() : '0' + dateobj.getHours()
			let mm = dateobj.getMinutes() > 9 ? dateobj.getMinutes() : '0' + dateobj.getMinutes()
			let ss = dateobj.getSeconds() > 9 ? dateobj.getSeconds() : '0' + dateobj.getSeconds()
			let output = '';
			let separator = '/'
			if (format) {
				separator = format.match(/-/) ? '-' : '/'
				output += format.match(/yy/i) ? YYYY : ''
				output += format.match(/MM/) ? (output.length ? separator : '') + MM : ''
				output += format.match(/dd/i) ? (output.length ? separator : '') + DD : ''
				output += format.match(/hh/i) ? (output.length ? ' ' : '') + HH : ''
				output += format.match(/mm/) ? (output.length ? ':' : '') + mm : ''
				output += format.match(/ss/i) ? (output.length ? ':' : '') + ss : ''
			} else {
				output += YYYY + separator + MM + separator + DD
			}
			output = prefix ? (prefix + output) : output

			return newtimestamp ? output : ''
		},

以上是兩個函式用法如下

let timearr = this.getAll(2020-09-07 ,2020-09-13)
console.log(timearr)
如此簡單