123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208 |
- //获取年
- export const getYears = (start,end)=>{
- const years = [];
- while(start <= end){
- years.push(start);
- ++start;
- }
- return years;
- }
- //获取月
- export const getMonths = ()=>{
- let index = 1;
- const months = [];
- while(index <= 12){
- if(index < 10){
- months.push('0'+index);
- }else{
- months.push(index);
- }
- ++index;
- }
- return months;
- }
- //获取日
- export const getDays = (year,month)=>{
- const days = [];
- //获取当月有几天
- const count = new Date(year,month,0).getDate();
- let index = 1;
- while(index <= count){
- if(index < 10){
- days.push('0'+index);
- }else{
- days.push(index);
- }
- ++index;
- }
- return days;
- }
- //获取小时
- export const getHours = ()=>{
- return createArray(24);
- }
- //获取分钟
- export const getMinutes = ()=>{
- return createArray(60);
- }
- //获取秒
- export const getSeconds = ()=>{
- return createArray(60);
- }
- //根据日期获取年月日时分秒
- export const getDateTime = (date)=>{
- const year = date.getFullYear();
- const month = date.getMonth()+1;
- const day = date.getDate();
- const hour = date.getHours();
- const minute = date.getMinutes();
- const second = date.getSeconds();
- return [String(year),String(addZero(month)),String(addZero(day)),String(addZero(hour)),String(addZero(minute)),String(addZero(second))];
- }
- export const getDateStringTime = (dateString)=>{
- return dateString.split('-').map(item=>addZero(item)).join('-')
- }
- //创建确定长度的数组
- export const createArray = count =>{
- return Array.from({length: count},(value,index)=>addZero(index))
- }
- //<10的数前面加0
- export const addZero = (num)=>{
- return num < 10 ? '0'+num : num;
- }
- /**
- * YYYY 2020
- * MM 01-12
- * DD 01-31
- * HH 01-24
- * mm 00-59
- * ss 00-59
- * 根据传入的时间数组和类型转化为不同格式的时间字符串
- */
- export const formateTime = (array, type)=>{
- const types = [
- "YYYY",
- "YYYY-MM",
- "YYYY-MM-DD",
- "YYYY-MM-DD HH:mm",
- "YYYY-MM-DD HH:mm:ss",
- ];
- const index = types.findIndex((item) => item === type);
- if (index > -1) {
- const len = index;
- if (len > 2) {
- array.length = len + 2;
- return `${array.slice(0, 3).join("-")} ${array.slice(3).join(":")}`;
- } else {
- array.length = len + 1;
- return `${array.slice(0, 3).join("-")}`;
- }
- }
- return "";
- }
- /**
- * 古时十二时辰
- */
- export const chinaHours = [
- {
- name: ' 子时',
- startTime: '23:00:00',
- endTime: '00:59:59',
- },
- {
- name: '丑时',
- startTime: '01:00:00',
- endTime: '02:59:59',
- },
- {
- name: '寅时',
- startTime: '03:00:00',
- endTime: '04:59:59',
- },
- {
- name: '卯时',
- startTime: '05:00:00',
- endTime: '06:59:59',
- },
- {
- name: '辰时',
- startTime: '07:00:00',
- endTime: '08:59:59',
- },
- {
- name: '巳时',
- startTime: '09:00:00',
- endTime: '10:59:59',
- },
- {
- name: '午时',
- startTime: '11:00:00',
- endTime: '12:59:59',
- },
- {
- name: '未时',
- startTime: '13:00:00',
- endTime: '14:59',
- },
- {
- name: '申时',
- startTime: '15:00:00',
- endTime: '16:59:59',
- },
- {
- name: '酉时',
- startTime: '17:00:00',
- endTime: '18:59:59',
- },
- {
- name: ' 戌时',
- startTime: '19:00:00',
- endTime: '20:59:59',
- },
- {
- name: '亥时',
- startTime: '21:00:00',
- endTime: '22:59:59',
- },
-
- ]
- /**
- * time: 传入时间
- * 返回:时辰
- */
- export const getChinaTime = (time)=>{
- const currentSeconds = timeToSeconds(time);
- const index = chinaHours.findIndex((item,index)=>{
- const startSeconds = timeToSeconds(item.startTime);
- const endSeconds = timeToSeconds(item.endTime);
- if(index == 0){
- const startEndSeconds = timeToSeconds('23:59:59');
- const endStartSeconds = timeToSeconds('00:00:00');
- console.log(index,startSeconds,currentSeconds,startEndSeconds)
- console.log(index,endStartSeconds,currentSeconds,endSeconds)
- return (currentSeconds >= startSeconds && currentSeconds <= startEndSeconds) || (currentSeconds >= endStartSeconds && currentSeconds <= endSeconds) ;
- }else{
- return currentSeconds >= startSeconds && currentSeconds <= endSeconds;
- }
- })
- return chinaHours[index];
- }
- //将时间转化为秒数
- export const timeToSeconds = (time)=>{
- const timeArray = time.split(':');
- const currentTimeSeconds = timeArray.reduce((accumulator,currentValue,index)=>{
- if(index == timeArray.length - 1){
- return accumulator + Number(currentValue);
- }else if(index == 0){
- return accumulator + Number(currentValue) * 3600;
- }
- return accumulator + Number(currentValue) * 60
- },0)
- return currentTimeSeconds;
- }
|