dateTimePicker.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. function withData(param){
  2. return param < 10 ? '0' + param : '' + param;
  3. }
  4. function getLoopArray(start,end){
  5. var start = start || 0;
  6. var end = end || 1;
  7. var array = [];
  8. for (var i = start; i <= end; i++) {
  9. array.push(withData(i));
  10. }
  11. return array;
  12. }
  13. function getMonthDay(year,month){
  14. var flag = year % 400 == 0 || (year % 4 == 0 && year % 100 != 0), array = null;
  15. switch (month) {
  16. case '01':
  17. case '03':
  18. case '05':
  19. case '07':
  20. case '08':
  21. case '10':
  22. case '12':
  23. array = getLoopArray(1, 31)
  24. break;
  25. case '04':
  26. case '06':
  27. case '09':
  28. case '11':
  29. array = getLoopArray(1, 30)
  30. break;
  31. case '02':
  32. array = flag ? getLoopArray(1, 29) : getLoopArray(1, 28)
  33. break;
  34. default:
  35. array = '月份格式不正确,请重新输入!'
  36. }
  37. return array;
  38. }
  39. function getNewDateArry(){
  40. // 当前时间的处理 年月日时分秒
  41. var newDate = new Date();
  42. var year = withData(newDate.getFullYear()),
  43. mont = withData(newDate.getMonth() + 1),
  44. date = withData(newDate.getDate()),
  45. hour = withData(newDate.getHours()),
  46. minu = withData(newDate.getMinutes());
  47. // seco = withData(newDate.getSeconds());
  48. return [year, mont, date, hour, minu];
  49. }
  50. function dateTimePicker(startYear,endYear,date) {
  51. // 返回默认显示的数组和联动数组的声明
  52. var dateTime = [], dateTimeArray = [[],[],[],[],[]];
  53. var start = startYear || 1978;
  54. var end = endYear || 2100;
  55. //处理传过来的字符串转化为数组
  56. let dataArr = date.split(" ")[0].split('/')
  57. let time = date.split(" ")[1].split(':')
  58. // 默认开始显示数据 如果把自定义值传过来的话就使用自定义时间 否则用当前时间 ...dataArr数组解构
  59. var defaultDate = date ? [...dataArr, ...time] : getNewDateArry();
  60. // 处理联动列表数据
  61. /*年月日 时分秒*/
  62. dateTimeArray[0] = getLoopArray(start,end);
  63. dateTimeArray[1] = getLoopArray(1, 12);
  64. dateTimeArray[2] = getMonthDay(defaultDate[0], defaultDate[1]);
  65. dateTimeArray[3] = getLoopArray(0, 23);
  66. dateTimeArray[4] = getLoopArray(0, 59);
  67. // dateTimeArray[5] = getLoopArray(0, 59);
  68. //遍历dateTimeArray数组
  69. dateTimeArray.forEach((current,index) =>
  70. //匹配defaultDate[index]值在current数组中的位置
  71. dateTime.push(current.indexOf(defaultDate[index]))
  72. );
  73. return {
  74. dateTimeArray: dateTimeArray,
  75. dateTime: dateTime
  76. }
  77. }
  78. module.exports = {
  79. dateTimePicker: dateTimePicker,
  80. getMonthDay: getMonthDay
  81. }