date.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. import soloarlunar from './solarlunar.js'
  2. var monthday = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
  3. var weekarea = new Array(7);
  4. var nowdate = new Date();
  5. var weekName = ['日', '六', '五', '四', '三', '二', '一'];
  6. var xday = ['日', '一', '二', '三', '四', '五', '六']
  7. var dateInfo = {
  8. //闰年判断
  9. getRunnian(yy) {
  10. if (yy % 4 == 0 && yy % 100 !== 0 || yy % 400 == 0) {
  11. monthday[1] = 29;
  12. } else {
  13. monthday[1] = 28;
  14. }
  15. },
  16. setTextData(time){
  17. let date=new Date(time);
  18. let month=date.getMonth()>8?(date.getMonth()+1):('0'+(date.getMonth()+1));
  19. let day=date.getDate()>9?date.getDate():('0'+date.getDate());
  20. return date.getFullYear()+'年'+month+'月'+day+'日';
  21. },
  22. //获取次日名称
  23. getFormatTimeText(time) {
  24. let ytime = Number(time.replace(':', ''));
  25. var c1 = Number(ytime / 100).toFixed(0)
  26. c1 = c1 < 10 ? ('0' + c1) : (c1 > 23 ? ('次日' + ((c1 - 24) > 9 ? (c1 - 24) : ('0' + (c1 - 24)))) : c1);
  27. c1 = c1 + ':' + (ytime % 100 ? '30' : '00')
  28. return c1;
  29. },
  30. getDayDate(date = {yy: nowdate.getFullYear(),mm: nowdate.getMonth() + 1,dd: nowdate.getDate()}) {
  31. let {
  32. yy,
  33. mm,
  34. dd
  35. } = date;
  36. date.xx = xday[this.getXingqi(yy, mm, dd)],
  37. date.date = this.getDate(yy, mm, dd),
  38. date.IDayCn= soloarlunar.solar2lunar(yy,mm,dd).IDayCn,
  39. date.IMonthCn= soloarlunar.solar2lunar(yy,mm,dd).IMonthCn;
  40. return date;
  41. },
  42. getWeekDate(yy= nowdate.getFullYear(),mm=nowdate.getMonth() + 1,dd= nowdate.getDate()) {
  43. var weekList = [];
  44. var xx = this.getXingqi(yy, mm, dd);
  45. if (xx == 0) {
  46. xx = 7;
  47. }
  48. var datetime = 0;
  49. var dateString='';
  50. //#ifdef APP-PLUS
  51. dateString=yy + '/' + mm + '/' + dd;
  52. //#endif
  53. //#ifndef APP-PLUS
  54. dateString=yy + '-' + mm + '-' + dd;
  55. //#endif
  56. for (var i = 0; i < 7; i++) {
  57. datetime = new Date(dateString).getTime() - (xx - i - 1) * 24 * 60 * 60 * 1000;
  58. let sy = new Date(datetime).getFullYear(),
  59. sm = new Date(datetime).getMonth() + 1,
  60. sd = new Date(datetime).getDate();
  61. weekList.push(this.getDayDate({yy: sy,mm: sm,dd: sd}))
  62. }
  63. return weekList;
  64. },
  65. getMonthDate(date = {yy: nowdate.getFullYear(),mm: nowdate.getMonth() + 1,dd: nowdate.getDate()}) {
  66. let {
  67. yy,
  68. mm,
  69. dd
  70. } = date;
  71. this.getRunnian(yy);
  72. var monthList = [];
  73. var datetime = 0;
  74. var nowMonth_first_xq = this.getXingqi(yy, mm, 1),
  75. nowMonth_last_xq = this.getXingqi(yy, mm, monthday[mm - 1]);
  76. if (nowMonth_first_xq == 0) {
  77. nowMonth_first_xq = 7;
  78. }
  79. if (nowMonth_last_xq == 0) {
  80. nowMonth_last_xq = 7;
  81. }
  82. var dateString='';
  83. //#ifdef APP-PLUS
  84. dateString=yy + '/' + mm + '/' + 1;
  85. //#endif
  86. //#ifndef APP-PLUS
  87. dateString=yy + '-' + mm + '-' + 1;
  88. //#endif
  89. for(var i=1-nowMonth_first_xq;i<monthday[mm - 1]+(7-nowMonth_last_xq);i++){
  90. datetime = new Date(dateString).getTime() + i * 24 * 60 * 60 * 1000
  91. var sy = new Date(datetime).getFullYear(),
  92. sm = new Date(datetime).getMonth() + 1,
  93. sd = new Date(datetime).getDate();
  94. monthList.push(this.getDayDate({yy: sy,mm: sm,dd: sd}))
  95. }
  96. return monthList;
  97. },
  98. getXingqi(yy, mm, dd) {
  99. return (new Date(yy + '-' + (Number(mm) > 9 ? mm : '0' + Number(mm) ) + '-' + (Number(dd) > 9 ? dd : '0' + Number(dd))).getDay())
  100. },
  101. getDate(yy, mm, dd) {
  102. return yy + '-' + (Number(mm) > 9 ? mm : '0' + Number(mm) ) + '-' + (Number(dd) > 9 ? dd : '0' + Number(dd));
  103. }
  104. }
  105. export default dateInfo;