var tt=new Date()//当前时间
var ty=tt.getYear()//年
var tm=tt.getMonth()//月
var td=tt.getDate()//日
var ot=new Date(ty,tm-1,td)//一个月前的日期
var ow=ot.getDay()//一个月前的星期数
alert(ow)
</script>
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"))
下面就是完整代码,你保存到一个html文件用浏览器打开就能看见效果:<script language=javascript>
var d1=new Date()
var d2=new Date()
var s1=''
var s2=''
var m=''
var d=''
//d2.setTime(d1.getTime()-30*24*3600*1000)//前30天
//上个月的今天
d2.setYear(d1.getMonth()==0?d1.getYear()-1:d1.getYear())
d2.setMonth(d1.getMonth()==0?11:d1.getMonth()-1)
d2.setDate(d1.getDate())
//d2.setDate(-30)
while(d2.getTime()<=d1.getTime()){
m=d2.getMonth()+1<10?'0'+(d2.getMonth()+1):d2.getMonth()+1
d=d2.getDate()<10?'0'+d2.getDate():d2.getDate()
s1=''+m+'月'+d+'日'
s2=''+(d2.getYear())+'-'+m+'-'+d
document.write('<nobr><a href=Search.asp?KeyWord=',s2,'>',s1,'</a><nobr>')
d2.setTime(d2.getTime()+24*3600*1000)
}
</script>
已经修改为04月01日了,你试试看吧,还有什么不满意的请补充。