0

したがって、このコードに関する質問を投稿しました(回答済み):

$(document).ready(Main); 

function Main() { 
    ConfigDate();         
} 


function ConfigDate() { 
    var currentTime = new Date(); 
    var dayofWeek = currentTime.getDay(); 

    var daysSinceThursday = (dayofWeek + 3) % 7 
    var lastThursday = new Date(currentTime.getDate() - daysSinceThursday); 
    var dd = lastThursday.getDate(); 

    var mm = lastThursday.getMonth() + 1; 
    var yyyy = lastThursday.getFullYear(); 

    $("#last_thursday").text(yyyy + " / " + mm + " / " + dd); 
} 

ここでの問題は、私のセルに表示される日付が 1969 年 12 月 31 日 (木曜日ではない) であることです。

先週の木曜日の日付を計算中に何か間違ったことをしましたか?

4

2 に答える 2

3

これは.getDate()、月の日を返すためです。したがって、30 未満のシリアル番号に基づいて日付を作成しているため、秒が 1 を超えることさえありません。

.setDate()新しい日付を作成する代わりに使用します。

date.setDate(date.getDate() - daysSinceThursday);

.setDate()既存の日付オブジェクトを変更しますが、新しい日付は返しません。

于 2012-06-27T13:46:08.480 に答える
2

最後の木曜日の日付のみに基づいて日付を設定しようとしています。次のようなことを試してください:

var daysSinceThursday = (dayofWeek + 3) % 7;
var lastThursday = new Date(currentTime.getTime());
lastThursday.setDate(currentTime.getDate() - daysSinceThursday);
var dd = lastThursday.getDate();

var mm = lastThursday.getMonth() + 1; 
var yyyy = lastThursday.getFullYear();

http://jsfiddle.net/rAuRF/3/

于 2012-06-27T13:45:22.517 に答える