使用 Javascript 日期,获得 0 或大于 31

Working with Javascript dates, getting 0 or above 31

本文关键字:大于 获得 Javascript 日期 使用      更新时间:2023-09-26

我正在使用此代码为当前一周的"日历"生成 5 个日期:

var days = new Array(4);
GetDaysOfWeek(new Date());
function GetDaysOfWeek(date)
{
    for (var i = 0; i < 5; i++)
    {
    var $dd = (date.getDate() - date.getDay() + 1 + i);
    var $mm = date.getMonth()+1;
    var $yyyy = date.getFullYear();
if($dd<10){$dd='0'+$dd}if($mm<10){$mm='0'+$mm}
days[i] = $dd+'/'+$mm+'/'+$yyyy;
    }
}

但是,根据日期,它可以在我的一些盒子上返回 00/10/2013 或 32/10/2013。似乎唯一更新正确的是我的实际日期。

我将如何更新这 5 个日期,以便获得正确的日期而不是不存在的日期。

提前谢谢。

currentTimestamp = new Date().getTime()
currentDay = currentTimestamp-currentTimestamp%(24*60*60*1000)
for (var i = 1; i< 6; i++){
 nextDay = new Date(currentDay + i*24*60*60*1000)
 days[i] = nextDay.toString(); //specify the format yourself
}

这是一种较短的方法,用于从给定日期创建 5 个工作日的日期数组;

function weekdays(d){
  // set date [d] (or today) to the sunday before
  var d = (function(){ 
             this.setDate(this.getDate()-(this.getDay()));
             return this;
           }).apply(d || new Date);
  // create an Array with length 5 and map 5 dates starting
  // from date [d] into it
  return String(Array(5)).split(',')
            .map(function(){
               return new Date(this.setDate(this.getDate()+1));
             }, d);
}

它从日期前的第一个星期一返回工作日,或者,如果给定日期是星期日,则返回下一周的工作日的日期。

weekdays(); 
//=> [Mon Oct 21 2013 17:14:23 GMT+0200, ... ,Fri Oct 25 2013 17:14:23 GMT+0200] 
weekdays(new Date('2013/10/06'));
//=> [Mon Oct 07 2013 00:00:00 GMT+0200, ..., Fri Oct 11 2013 00:00:00 GMT+0200]

参见:Mozilla DN on map

也许这个jsfiddle对你有用?