DateUtil.js 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. /**
  2. * 功能:
  3. * 作者:熊浩毅
  4. * 日期:2024/5/3 22:28
  5. */
  6. /**
  7. * 获取上个月的月初时间格式
  8. * @returns {string}
  9. */
  10. function getLastMonthStartDate() {
  11. var today = new Date();
  12. var lastMonth = new Date(today.getFullYear(), today.getMonth() - 1, 1);
  13. var formattedDate = formatDate(lastMonth);
  14. return formattedDate;
  15. }
  16. /**
  17. * 获取这个月月初
  18. * @returns {string}
  19. */
  20. function getCurrentMonthStartDate() {
  21. var today = new Date();
  22. var firstDayOfMonth = new Date(today.getFullYear(), today.getMonth(), 1);
  23. var formattedDate = formatDate(firstDayOfMonth);
  24. return formattedDate;
  25. }
  26. /**
  27. * 获取上个月月底
  28. * @returns {string}
  29. */
  30. function getLastMonthEndDate() {
  31. var today = new Date();
  32. var lastMonth = new Date(today.getFullYear(), today.getMonth(), 0);
  33. var formattedDate = formatDate(lastMonth);
  34. return formattedDate;
  35. }
  36. /**
  37. * 获取去年年初
  38. * @returns {string}
  39. */
  40. function getLastYearStartDate() {
  41. var today = new Date();
  42. var lastYear = new Date(today.getFullYear() - 1, 0, 1);
  43. var formattedDate = formatDate(lastYear);
  44. return formattedDate;
  45. }
  46. /**
  47. * 获取去年年底
  48. * @returns {string}
  49. */
  50. function getLastYearEndDate() {
  51. var today = new Date();
  52. var lastYear = new Date(today.getFullYear() - 1, 11, 31);
  53. var formattedDate = formatDate(lastYear);
  54. return formattedDate;
  55. }
  56. /**
  57. * 获取当天日期
  58. * @returns {string}
  59. */
  60. function getCurrentDate() {
  61. var today = new Date();
  62. var formattedDate = formatDate(today);
  63. return formattedDate;
  64. }
  65. /**
  66. * 获取前i个月前的月初日期
  67. * @param i
  68. * @returns {string}
  69. */
  70. function getPreviousMonthStartDate(i) {
  71. var today = new Date();
  72. var currentYear = today.getFullYear();
  73. var currentMonth = today.getMonth() + 1; // 月份从0开始,需要加1
  74. var previousMonthYear = currentYear;
  75. var previousMonth = currentMonth - i;
  76. // 跨年处理
  77. if (previousMonth <= 0) {
  78. previousMonth += 12;
  79. previousMonthYear -= 1;
  80. }
  81. // 计算前i个月前的月初
  82. var firstDayOfPreviousMonth = new Date(previousMonthYear, previousMonth - 1, 1);
  83. var firstDayFormatted = formatDate(firstDayOfPreviousMonth);
  84. return firstDayFormatted;
  85. }
  86. /**
  87. * 获取前i个月前的月末日期
  88. * @param i
  89. * @returns {string}
  90. */
  91. function getPreviousMonthEndDate(i) {
  92. var today = new Date();
  93. var currentYear = today.getFullYear();
  94. var currentMonth = today.getMonth() + 1; // 月份从0开始,需要加1
  95. var previousMonthYear = currentYear;
  96. var previousMonth = currentMonth - i;
  97. // 跨年处理
  98. if (previousMonth <= 0) {
  99. previousMonth += 12;
  100. previousMonthYear -= 1;
  101. }
  102. // 计算前i个月前的月末
  103. var lastDayOfPreviousMonth = new Date(previousMonthYear, previousMonth, 0);
  104. var lastDayFormatted = formatDate(lastDayOfPreviousMonth);
  105. return lastDayFormatted;
  106. }
  107. /**
  108. * 格式化日期为 yyyy-MM-dd
  109. * @param date
  110. * @returns {string}
  111. */
  112. function formatDate(date) {
  113. var year = date.getFullYear();
  114. var month = (date.getMonth() + 1).toString().padStart(2, '0');
  115. var day = date.getDate().toString().padStart(2, '0');
  116. return year + '-' + month + '-' + day;
  117. }
  118. export { getCurrentDate, getLastMonthStartDate, getLastMonthEndDate, getLastYearStartDate, getLastYearEndDate,
  119. getPreviousMonthStartDate,getPreviousMonthEndDate};