2

このコードを使用して、現在の週から「カレンダー」の 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;
    }
}

ただし、日付によっては、一部のボックスで 2013 年 10 月 00 日または 2013 年 10 月 32 日が返される場合があります。正しい更新は、私がいる実際の日付だけのようです。

これらの5つの日付を更新して、存在しない日付の代わりに正しい日付を取得するにはどうすればよいですか.

前もって感謝します。

4

2 に答える 2

0

これは、指定された日付から 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 onmap

たぶん、この jsfiddleは役に立ちますか?

于 2013-10-23T15:18:24.037 に答える