一、代码
<script>
let months = getLastAllMonthByNumber(6, '2021-07');
console.log(months);
function getLastAllMonthByNumber(number, time) {
let months = [time];
for (let i = 0; i < (number-1); i++) {
let firstDate = months[0] + '-01 00:00:00';
let lastUnix = dateToUnix(firstDate) - 1;
let lastMonth = unixToDate(lastUnix, "YYYY-MM");
months.unshift(lastMonth);
}
return months;
}
function dateToUnix(datetime) {
let tmp_datetime = datetime.replace(/:/g,'-');
tmp_datetime = tmp_datetime.replace(/ /g,'-');
let arr = tmp_datetime.split("-");
let now = new Date(Date.UTC(arr[0], arr[1]-1, arr[2], arr[3]-8, arr[4], arr[5]));
return parseInt((now.getTime()) / 1000);
}
function unixToDate(unix, formatStr) {
let date = new Date(parseInt(unix) * 1000);
let Y = date.getFullYear();
let M = (date.getMonth() + 1) < 10 ? '0' + (date.getMonth() + 1) : (date.getMonth() + 1);
let D = date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate();
let h = date.getHours();
let m = date.getMinutes();
let s = date.getSeconds();
formatStr = formatStr || 'YYYY-MM-DD H:m:s';
return formatStr.replace(/YYYY|MM|DD|H|m|s/ig, function (matches) {
return ({
YYYY: Y,
MM: M,
DD: D,
H: h,
m: m,
s: s
})[matches];
});
}
</script>
二、对应的PHP方法