122 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			122 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | // 创建年份数据
 | |||
|  | export const createYearList = (baseYear, span, startYear) => { | |||
|  |   const years = []; | |||
|  |   let nowYearIndex = -1; | |||
|  |   // 生成年份选项数据,往前span年
 | |||
|  |   for (let year = startYear ? startYear : baseYear - span; year <= baseYear + span; year++) { | |||
|  |   	if (baseYear >= year) { | |||
|  |   		nowYearIndex += 1; | |||
|  |   	} | |||
|  |   	years.push(year); | |||
|  |   } | |||
|  |   return { | |||
|  |     list: years, | |||
|  |     index: nowYearIndex | |||
|  |   } | |||
|  | } | |||
|  | 
 | |||
|  | // 创建月份数据
 | |||
|  | export const createMonthList = (nowMonth, baseMonth = 1) => { | |||
|  |   const months = []; | |||
|  |   let nowMonthIndex = -1; | |||
|  |   for (let month = baseMonth; month <= 12; month ++) { | |||
|  |   	if (nowMonth >= month) { | |||
|  |   		nowMonthIndex += 1; | |||
|  |   	} | |||
|  |   	months.push(String(month).padStart(2, '0')); | |||
|  |   } | |||
|  |   return { | |||
|  |     list: months, | |||
|  |     index: nowMonthIndex | |||
|  |   } | |||
|  | } | |||
|  | 
 | |||
|  | // 创建天数数据
 | |||
|  | export const createDayList = (year, month, nowDay, baseDay = 1) => { | |||
|  |   const days = []; | |||
|  |   let nowDayIndex = -1; | |||
|  |   // 可以选择的天,会根据月份有变化
 | |||
|  |   const maxDay = new Date(+year, +month, 0).getDate(); | |||
|  |   for (let day = +baseDay; day <= maxDay; day ++) { | |||
|  |   	if (nowDay >= day) { | |||
|  |   		nowDayIndex += 1; | |||
|  |   	} | |||
|  |   	days.push(String(day).padStart(2, '0')); | |||
|  |   } | |||
|  |   return { | |||
|  |     list: days, | |||
|  |     index: nowDayIndex | |||
|  |   } | |||
|  | } | |||
|  | 
 | |||
|  | // 创建小时数数据
 | |||
|  | export const createHourList = (nowHour, baseHour = 0) => { | |||
|  |   const hours = []; | |||
|  |   let nowHourIndex = -1; | |||
|  |   for (let hour = +baseHour; hour <= 23; hour ++) { | |||
|  |     if (+nowHour >= hour) { | |||
|  |     	nowHourIndex += 1; | |||
|  |     } | |||
|  |   	hours.push(String(hour).padStart(2, '0')); | |||
|  |   } | |||
|  |   return { | |||
|  |     list: hours, | |||
|  |     index: nowHourIndex | |||
|  |   } | |||
|  | } | |||
|  | 
 | |||
|  | // 创建分钟数数据
 | |||
|  | export const createMinuteList = (nowMinute, baseMinute = 0) => { | |||
|  |   const minutes = []; | |||
|  |   let nowMinuteIndex = -1; | |||
|  |   for (let minute = +baseMinute; minute <= 59; minute ++) { | |||
|  |     if (+nowMinute >= minute) { | |||
|  |     	nowMinuteIndex += 1; | |||
|  |     } | |||
|  |   	minutes.push(String(minute).padStart(2, '0')); | |||
|  |   } | |||
|  |   return { | |||
|  |     list: minutes, | |||
|  |     index: nowMinuteIndex | |||
|  |   } | |||
|  | } | |||
|  | 
 | |||
|  | // 创建秒数数据
 | |||
|  | export const createSecondList = (nowSecond, baseMinute = 0) => { | |||
|  |   const seconds = []; | |||
|  |   let nowSecondIndex = -1; | |||
|  |   for (let second = +baseMinute; second <= 59; second ++) { | |||
|  |     if (+nowSecond >= second) { | |||
|  |     	nowSecondIndex += 1; | |||
|  |     } | |||
|  |   	seconds.push(String(second).padStart(2, '0')); | |||
|  |   } | |||
|  |   return { | |||
|  |     list: seconds, | |||
|  |     index: nowSecondIndex | |||
|  |   } | |||
|  | } | |||
|  | 
 | |||
|  | // 生成日期字符串
 | |||
|  | export const createDateStr = (year, month, day, hour, minute, second) => { | |||
|  |   let str = ''; | |||
|  |   if (year) { | |||
|  |     str += `${year}年` | |||
|  |   } | |||
|  |   if (month) { | |||
|  |     str += `${month}月` | |||
|  |   } | |||
|  |   if (day) { | |||
|  |     str += `${day}日` | |||
|  |   } | |||
|  |   if (hour) { | |||
|  |     str += minute ? ` ${hour}:` : `${hour}` | |||
|  |   } | |||
|  |   if (minute) { | |||
|  |     str += second ? `${minute}:` : `${minute}` | |||
|  |   } | |||
|  |   if (second) { | |||
|  |     str += `${second}` | |||
|  |   } | |||
|  |   return str; | |||
|  | } |