-2

日付と30日を出力しようとしています。今日スクリプトをロードしましたが、その日は「未定義」と表示され、残りのスクリプトは問題ありません。「未定義、2013年4月7日」。

これが私のスクリプトです:

// handle the due date
var dayNames = new Array("Sunday","Monday","Tuesday","Wednesday", "Thursday","Friday","Saturday");
var monthNames = new Array("January","February","March","April","May","June","July", "August","September","October","November","December");    
var todayPlus30 = new Date();
todayPlus30.setDate(todayPlus30.getDate()+30)
var dateStr = (dayNames[todayPlus30.getDate()] + ", " + monthNames[todayPlus30.getMonth()] + " " +  todayPlus30.getDate()  + ", " +  todayPlus30.getFullYear());

$('#date').html(dateStr);
4

2 に答える 2

1

dayNames 配列には 7 つの要素があるため、dayNames[0] .. dayNames[6] の要素があります。

ここで参照する場合:

dayNames[todayPlus30.getDate()]

未定義の dayNames[7] にアクセスしようとしています。これは、todayPlus30.getDate() が 7 を返すためです ( getDate()は「月の日を返す」(MDN による))。

次のように変更します。

dayNames[todayPlus30.getDay()]

曜日を取得します。

于 2013-03-08T09:12:27.257 に答える
0

(整数) 曜日については、getDayではなくが必要ですgetDate

于 2013-03-08T09:11:50.023 に答える