如何在JavaScript中获取今天、明天和昨天的日期

9

我试图以这种格式2015-05-21获取当前日期,明天的日期和昨天的日期。

我已经编写了以下函数,并且运行良好。但是,我想听听您的看法,因为我不是javascript专家,所以我希望确保它在我的应用程序中正常工作。

function gettodaydate() {
var d = new Date(); 
var date=""+d.getFullYear()+"-"+d.getMonth()+"-"+d.getDate();
return date;        
}

 function gettomorrowdate() {
var d = new Date(); 
var date=""+d.getFullYear()+"-"+d.getMonth()+"-"+(d.getDate()+1);
return date;        
}

 function getyesterdaydate() {
var d = new Date(); 
var date=""+d.getFullYear()+"-"+d.getMonth()+"-"+(d.getDate()-1);
return date;        
}

如果我没记错的话,你想让别人审查你的代码并提出最佳方法。如果是这样,你需要在codereview.stackexchange.com上发布你的问题。 - Harish
好的!听起来很不错 :) 谢谢 - Yasser B.
在这个问题被标记为重复之前,我写了一个简短的脚本。如果您想要查看,请查看此 fiddle。它允许您设置向前和向后的天数。http://jsfiddle.net/ctwheels/94out9dx/ - ctwheels
此外,需要注意的是,尽管标记为重复的帖子涉及将日期添加到当前日期中,@ YasserB.的问题涉及添加和删除日期,而问题不是如何做到这一点,而是如何改进它,如果有更好的方法。这显然是两个不同的问题,只是在想法上有所重叠。 - ctwheels
@ctwheels 感谢您的评论和提供的Jsfiddle代码,它真的很有帮助。我只是想确保我的代码能够正常工作,并且我想更深入地了解如何在Javascript中处理日期。再次感谢。 - Yasser B.
@YasserB。只是想让您知道,我更新了我的代码以解决一些问题。现在的代码按时间而非日期工作(防止出现负日期),并且如果日期数字小于10,则添加前导零。 - ctwheels
1个回答

14

今天的

var currentDate = new Date();

打印:

var day = currentDate.getDate()
var month = currentDate.getMonth() + 1
var year = currentDate.getFullYear()

那么......如果一天有24小时,就有60分钟、60秒、1000毫秒。

var yesterday = new Date(new Date().getTime() - 24 * 60 * 60 * 1000);
var tomorrow = new Date(new Date().getTime() + 24 * 60 * 60 * 1000);

我认为这太过复杂了。你以后会回头看着它,说:“这段代码到底是干什么的?” - Steven Lemmens
1
@Steven,这就是为什么程序员要有变量名和注释的原因… - Jordi Castilla
5
没错,但为什么要通过减去24小时并乘以60、60、60和1000的方式来实现,如果只需使用d.getDate() - 1即可?可能这与个人偏好有关。无论如何,我只是在评论而已。我没有对你的建议进行投反对票或任何其他行动,因为它显然能够奏效。 - Steven Lemmens
我认为这太复杂了。去看看在Xcode中编写这个简单代码有多痛苦...那真是“复杂”的大师课程!!;-) - Mike Gledhill

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接