我正在尝试使用JavaScript从过去的X天算起来。
然而,我只能弄清楚如何获得今天的日期,但现在是以前的日期。
说如果我想要包括今天在内的最后6天,它将被打印出来:
到目前为止,我已经得到了今天的成就。
(function() {
var days = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],
months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sept','Oct','Nov','Dec'];
Date.prototype.getMonthName = function() {
return months[this.getMonth()];
};
Date.prototype.getDayName = function() {
return days[this.getDay()];
};
})();
var todayDate = new Date(),
day = todayDate.getDate(),
weekday = todayDate.getDayName(),
month = todayDate.getMonthName(),
today = weekday + ' ' + month + ' ' + day;
答案 0 :(得分:1)
我想这应该有效:
var msecsIn1Day = 86400000, c = 0;
var todayDate = new Date();
while(c < 6) {
var d = new Date(todayDate.getTime() - msecsIn1Day * c);
day = d.getDate(),
weekday = d.getDayName(),
month = d.getMonthName(),
today = weekday + ' ' + month + ' ' + day;
alert(today);
c++;
}
答案 1 :(得分:0)
使用86400000(毫秒)方法会遇到夏令时问题
假设
var d =新日期(&#34; 23/12/2012 00:00:00&#34;);
var e = new Date(d.getTime() - 86400000);
和DST是+1然后e将是23/12/2012 01:00:00
要解决此问题,您可以使用函数来计算之前的日期:
Date.prototype.getPreviousDate = function(beforeDays) {
if (!days) { beforeDays = 0 }
return new Date(new Date().setDate(this.getDate() - beforeDays));
}
然后你可以像
一样使用它var todayDate = new Date(),c = 0;
while(c > 6){
var d = todayDate.getPreviousDate(c),
day = d.getDate(),
weekday = d.getDayName(),
month = d.getMonthName(),
today = weekday + ' ' + month + ' ' + day;
alert(today);
}
有关详细信息,请参阅this question