<script language="javascript">
var d=new Date(2004,7,30-30);
document.write(d.getYear()+"-"+d.getMonth()+"-"+d.getDate());
</script>
var d=new Date(2004,7,30-30);
document.write(d.getYear()+"-"+d.getMonth()+"-"+d.getDate());
</script>
var d=new Date(2004,7,30-30);
document.write(d.getYear()+"-"+d.getMonth()+"-"+d.getDate());
</script>
这样得到的是6月31日
但没有考虑到6月没有31日啊,希望能有考虑到的代码,谢谢
var d=new Date(2004,7,30);
d.setDate(d.getDate()-30);
document.write(d.getYear()+"-"+(d.getMonth()+1)+"-"+d.getDate());
</script>
另
DateAdd("d",-30,'2001-12-21')
这是VBScript的函数.
alert(new Date(new Date() - 30 * 24 * 3600 * 1000).toLocaleString());
</script>
var inputDate = new Date(v); // v 是你输入的日期字符串(格式: yyyy/mm/dd),先构造一个日期对象count是要减去的天数, newDate得到减去后的日期
var newDate = new Date(inputDate - count * 24 * 3600 * 1000);
alert(addDay(-30,1));
alert(addDay(-30,2));
alert(addDay(-30,3));
alert(addDay(-30,0));function addDay(days,n)
{
//函数说明:days日期差,n代表如下含义。
var my_date_ago=new Date(new Date() - days * 24 * 60 * 60 * 1000 * -1);//days天的日期
switch (n)
{
case 1:
//返回年
return(my_date_ago.getFullYear());
break;
case 2:
//返回月
return(my_date_ago.getMonth()+1);
break;
case 3:
//返回日
return(my_date_ago.getDate());
break;
default :
//返回全部
return(my_date_ago.getFullYear() + "-" + (my_date_ago.getMonth()+1) + "-" + my_date_ago.getDate());
break;
}
}
</SCRIPT>