JavaScript如何获得某一天的前一天日期

chaoliu1024 2012-03-03 10:28:10
网上看到一段代码,可以获得系统当前日期的前一天。
如何获得任意选定一天的前一天呢?
不要说直接减1啊。例如:20120301减1就为20120300了,应该是20120229
系统当前日期的前一天代码:
	function GetDay()   
{
var today=new Date();
var yesterday_milliseconds=today.getTime()-1000*60*60*24;

var yesterday=new Date();
yesterday.setTime(yesterday_milliseconds);

var strYear=yesterday.getFullYear();
var strDay=yesterday.getDate();
var strMonth=yesterday.getMonth()+1;
if(strMonth<10)
{
strMonth="0"+strMonth;
}
var strYesterday=strYear+"-"+strMonth+"-"+strDay;
alert(strYesterday);
}

如何获得任意一天的前一天呢?
...全文
1509 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
josephSC 2012-03-06
  • 打赏
  • 举报
回复
4楼和11楼都比较符合你的要求
喜阳阳 2012-03-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 hookee 的回复:]

JScript code


s = "20120301";
alert(getPreDay(s));

function getPreDay(s){
var y = parseInt(s.substr(0,4), 10);
var m = parseInt(s.substr(4,2), 10)-1;
var d = parseInt(s.substr(6,2), 10……
[/Quote]++
q107770540 2012-03-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 hookee 的回复:]
JScript code


s = "20120301";
alert(getPreDay(s));

function getPreDay(s){
var y = parseInt(s.substr(0,4), 10);
var m = parseInt(s.substr(4,2), 10)-1;
var d = parseInt(s.substr(6……
[/Quote]
++ 学习
zhang1lang4 2012-03-05
  • 打赏
  • 举报
回复
d.setDate(d.getDate()-1)
码上生活8899 2012-03-05
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 hch126163 的回复:]
引用 4 楼 hookee 的回复:

JScript code


s = "20120301";
alert(getPreDay(s));

function getPreDay(s){
var y = parseInt(s.substr(0,4), 10);
var m = parseInt(s.substr(4,2), 10)-1;
var d = parseInt(……
[/Quote]

正解!!
hch126163 2012-03-05
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 hookee 的回复:]

JScript code


s = "20120301";
alert(getPreDay(s));

function getPreDay(s){
var y = parseInt(s.substr(0,4), 10);
var m = parseInt(s.substr(4,2), 10)-1;
var d = parseInt(s.substr(6,2), 10……
[/Quote]
++
楼主那个函数,把日期写成参数,传参就OK
2012-03-05
  • 打赏
  • 举报
回复
用你这个简单改一下就可以

function GetDay(year, month, day)
{
var today=new Date(year, month-1 ,day);
var yesterday_milliseconds=today.getTime()-1000*60*60*24;

var yesterday=new Date();
yesterday.setTime(yesterday_milliseconds);

var strYear=yesterday.getFullYear();
var strDay=yesterday.getDate();
var strMonth=yesterday.getMonth()+1;
if(strMonth<10)
{
strMonth="0"+strMonth;
}
var strYesterday=strYear+"-"+strMonth+"-"+strDay;
alert(strYesterday);
}
GetDay(2012, 1, 5);
hookee 2012-03-04
  • 打赏
  • 举报
回复


s = "20120301";
alert(getPreDay(s));

function getPreDay(s){
var y = parseInt(s.substr(0,4), 10);
var m = parseInt(s.substr(4,2), 10)-1;
var d = parseInt(s.substr(6,2), 10);
var dt = new Date(y, m, d-1);
y = dt.getFullYear();
m = dt.getMonth()+1;
d = dt.getDate();
m = m<10?m:"0"+m;
d = d<10?d:"0"+d;
return y + "" + m + "" + d;
}
色拉油 2012-03-04
  • 打赏
  • 举报
回复
正解[Quote=引用 2 楼 jusfr 的回复:]

new Date(d.getFullYear(),d.getMonth(),d.getDate()-1)
[/Quote]
jusfr 2012-03-03
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 jusfr 的回复:][/Quote]
var d=new Date()
alert(new Date(d.getFullYear(),d.getMonth(),d.getDate()-1));
jusfr 2012-03-03
  • 打赏
  • 举报
回复
new Date(d.getFullYear(),d.getMonth(),d.getDate()-1)
Acesidonu 2012-03-03
  • 打赏
  • 举报
回复
var d = new Date(2012, 0, 1);
d.setTime(d.getTime()-24*60*60*1000);

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧