1、根据输入的日期,获取年,月,日信息。
2、根据月信息,减去一个月,就是上一个月。注意1月份是上一年的12月份。
3、然后再拼接成日期格式
根据上面步骤,可以写对应的功能函数
/*** 获取上一个月
*
* @date 格式为yyyy-mm-dd的日期,如:2014-01-25
*/
function getPreMonth(date) {
var arr = date.split('-')
var year = arr[0] //获取当前日期的年份
var month = arr[1] //获取当前日期的月份
var day = arr[2] //获取当前日期的日
var days = new Date(year, month, 0)
days = days.getDate() //获取当前日期中月的天数
var year2 = year
var month2 = parseInt(month) - 1
if (month2 == 0) {//如果是1月份,则取上一年的12月份
year2 = parseInt(year2) - 1
month2 = 12
}
var day2 = day
var days2 = new Date(year2, month2, 0)
days2 = days2.getDate()
if (day2 > days2) {//如果原来日期大于上一月的日期,则取当月的最大日期。比如3月的30日,在2月中没有30
day2 = days2
}
if (month2 < 10) {
month2 = '0' + month2//月份填补成2位。
}
var t2 = year2 + '-' + month2 + '-' + day2
return t2
}
调用
alert(getPreMonth("2014-01-25"))
你好,
先说一年的月份,这个需要问吗?一年能出现13个月?所以:
var monthOfYear = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]// 或者中文,根据你的需求自己定
var monthOfYear = ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月']
再来说获取最近三个月月份的事情:
// 先取到当前日期对象var date = new Date()
// 月份数组
var nearThree = []
// 当月
var month = date.getMonth()
// 现将本月推入数组
nearThree.push(monthOfYear[month])
// 最近一月逆推两个月
for (var i = 1 i <= 2 i++) {
date.setMonth(month - i)
nearThree.unshift(monthOfYear[date.getMonth()])
}
console.log(monthOfYear)
console.log(nearThree)
好了,希望能解决你的问题。