2017-02-10 10 views
0
(function() { 
    var date = new Date().toISOString().substring(0, 10), 
     field = document.querySelector('#date'); 
    var day = new Date(date); 
    var getMonday = day.getDay(), 
     diff = date.getDate() - getMonday + (getMonday == 0 ? -6:1); 
    field.value = new Date(date.setDate(diff)); 
    console.log(date); 
})(); 

私は現在の日付の月曜日を取得しようとしています。今週の月曜日はどうすれば入手できますか?

が、私はそれが

TypeError: date.getDate is not a function 
    at index.html:394 
    at index.html:398 
(anonymous) @ index.html:394 
(anonymous) @ index.html:398 

ポストいわゆる重複の解決方法がわからない、それについてのエラーを得続けるとは、日付だけを取得する方法を要求します。私の質問にも同様のコードがありますが、質問では決して言及されなかったエラーメッセージが表示されます

+2

の可能性のある重複した[JavaScriptを - 現在の日からの週の最初の曜日を取得](http://stackoverflow.com/questions/4156434/javascript-現在の日付から最初の日) – GillesC

+0

@GillesC投稿で新しい情報がありましたが、質問によって回答されていません –

+0

** getDate()**を取得しようとしていますstringから - そのようなメソッドはありません。代わりに** date ** typeを使用してください – Alexey

答えて

2

最初の行の文字列に日付を変換します: date = new Date().toISOString().substring(0, 10)これはエラーの原因です...日付はもはや日付ですオブジェクト。

--- EDIT:ソリューション 後の出力のみ、私はISO文字列として、あなたの後に使用するのいずれかのために追加の変数を宣言するか、または変換を行うためにあなたを示唆している。このため 、Iと思いますDateオブジェクトのプロトタイプ

Date.prototype.myFormat = function() { 
    return this.toISOString().substring(0, 10); 
} 

にあなたのフォーマットを追加提案し、このようなあなたの最初のコードを更新します。あなたがより多くの場所でそれを必要とする場合

var date = new Date(), 
str_date=date.toISOString().substring(0, 10), 
field = document.querySelector('#date'), 
day = new Date(date), 
getMonday = day.getDay(), 
diff = date.getDate() - getMonday + (getMonday == 0 ? -6:1); 

console.log(date); 
console.log(str_date); 
console.log(new Date(date.setDate(diff))); 
console.log(new Date(date.setDate(diff)).myFormat()); 

//Now you can update your field as needed with date or string value 
field.value = new Date(date.setDate(diff)); 
field.value = new Date(date.setDate(diff)).myFormat(); 

をgetMondayを作りますまた、機能...

ハッピーコーディング、 Codrut

関連する問題