1. /**
    2. * 获取本周、本季度、本月、上月的开始日期、结束日期
    3. */
    4. var now = new Date(); //当前日期
    5. var nowDayOfWeek = now.getDay(); //今天本周的第几天
    6. var nowDay = now.getDate(); //当前日
    7. var nowMonth = now.getMonth(); //当前月
    8. var nowYear = now.getYear(); //当前年
    9. nowYear += (nowYear < 2000) ? 1900 : 0; //
    10. var lastMonthDate = new Date(); //上月日期
    11. lastMonthDate.setDate(1);
    12. lastMonthDate.setMonth(lastMonthDate.getMonth() - 1);
    13. var lastYear = lastMonthDate.getYear();
    14. var lastMonth = lastMonthDate.getMonth();
    15. //格式化日期:yyyy-MM-dd
    16. function formatDate(date) {
    17. var myyear = date.getFullYear();
    18. var mymonth = date.getMonth() + 1;
    19. var myweekday = date.getDate();
    20. if (mymonth < 10) {
    21. mymonth = "0" + mymonth;
    22. }
    23. if (myweekday < 10) {
    24. myweekday = "0" + myweekday;
    25. }
    26. return (myyear + "-" + mymonth + "-" + myweekday);
    27. }
    28. //获得某月的天数
    29. function getMonthDays(myMonth) {
    30. var monthStartDate = new Date(nowYear, myMonth, 1);
    31. var monthEndDate = new Date(nowYear, myMonth + 1, 1);
    32. var days = (monthEndDate - monthStartDate) / (1000 * 60 * 60 * 24);
    33. return days;
    34. }
    35. //获得本季度的开始月份
    36. function getQuarterStartMonth() {
    37. var quarterStartMonth = 0;
    38. if (nowMonth < 3) {
    39. quarterStartMonth = 0;
    40. }
    41. if (2 < nowMonth && nowMonth < 6) {
    42. quarterStartMonth = 3;
    43. }
    44. if (5 < nowMonth && nowMonth < 9) {
    45. quarterStartMonth = 6;
    46. }
    47. if (nowMonth > 8) {
    48. quarterStartMonth = 9;
    49. }
    50. return quarterStartMonth;
    51. }
    52. //获得本周的开始日期
    53. function getWeekStartDate() {
    54. var weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek);
    55. return formatDate(weekStartDate);
    56. }
    57. //获得本周的结束日期
    58. function getWeekEndDate() {
    59. var weekEndDate = new Date(nowYear, nowMonth, nowDay + (6 - nowDayOfWeek));
    60. return formatDate(weekEndDate);
    61. }
    62. //获得上周的开始日期
    63. function getLastWeekStartDate() {
    64. var weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek - 7);
    65. return formatDate(weekStartDate);
    66. }
    67. //获得上周的结束日期
    68. function getLastWeekEndDate() {
    69. var weekEndDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek - 1);
    70. return formatDate(weekEndDate);
    71. }
    72. //获得本月的开始日期
    73. function getMonthStartDate() {
    74. var monthStartDate = new Date(nowYear, nowMonth, 1);
    75. return formatDate(monthStartDate);
    76. }
    77. //获得本月的结束日期
    78. function getMonthEndDate() {
    79. var monthEndDate = new Date(nowYear, nowMonth, getMonthDays(nowMonth));
    80. return formatDate(monthEndDate);
    81. }
    82. //获得上月开始时间
    83. function getLastMonthStartDate() {
    84. var lastMonthStartDate = new Date(nowYear, lastMonth, 1);
    85. return formatDate(lastMonthStartDate);
    86. }
    87. //获得上月结束时间
    88. function getLastMonthEndDate() {
    89. var lastMonthEndDate = new Date(nowYear, lastMonth, getMonthDays(lastMonth));
    90. return formatDate(lastMonthEndDate);
    91. }
    92. //获得本季度的开始日期
    93. function getQuarterStartDate() {
    94. var quarterStartDate = new Date(nowYear, getQuarterStartMonth(), 1);
    95. return formatDate(quarterStartDate);
    96. }
    97. //或的本季度的结束日期
    98. function getQuarterEndDate() {
    99. var quarterEndMonth = getQuarterStartMonth() + 2;
    100. var quarterStartDate = new Date(nowYear, quarterEndMonth,
    101. getMonthDays(quarterEndMonth));
    102. return formatDate(quarterStartDate);
    103. }