2

スクリプトで次のものを使用しています。

var startDate = new Date("10/12/2012");
var endDate = new Date("10/18/2012");

これらの日付を、startDateを先週の月曜日、endDateを先週の日曜日として動的に作成したいと思います。私は以下を試しました:

var curr = new Date; // get current date
var first = curr.getDate() - curr.getDay(); // First day is the day of the month - the day of the week
var last = first + 6; // last day is the first day + 6
var startDate = new Date(curr.setDate(first)).format("m/dd/yyyy");
var endDate = new Date(curr.setDate(last)).format("m/dd/yyyy");

しかし、何らかの理由でこれは機能しません。startDate変数またはendDate変数には何も出力されません。

私が間違っていることについて何か考えはありますか?

4

3 に答える 3

3

Javascriptdatetimeオブジェクトにはformatメソッドがありません。ライブラリを使用するか、自分で文字列を生成する必要があります。

var curr = new Date; // get current date
var first = curr.getDate() - curr.getDay(); // First day is the day of the month - the day of the week
var last = first + 6; // last day is the first day + 6
var startDate = new Date(curr.setDate(first));
startDate = "" + (startDate.getMonth() + 1) + "/" + startDate.getDate() + "/" + startDate.getFullYear();
var endDate = new Date(curr.setDate(last));
endDate = "" + (endDate.getMonth() + 1) + "/" + endDate.getDate() + "/" + endDate.getFullYear();

これがフィドルhttp://jsfiddle.net/DPQeB/2/とその出力です

2012
年11月18日2012年11月24日

日付をフォーマットできるライブラリの1つは、jQueryUIです。

于 2012-11-21T12:52:20.827 に答える
1

date.jsを使用して先週の日曜日を取得する

Date.today().moveToDayOfWeek(0, -1); // -1 indicates to go back

ライブラリを使用して日付を操作するのが最適です。それはあなたの人生をずっと楽にしてくれるでしょう。

そうは言っても、JavaScriptの日付を理解することを長期的な目的としています。デバッグなどに役立ちます。

于 2012-11-21T13:14:43.893 に答える
0

日曜日から開始する場合:

var today = new Date();
var sundayOfWeek = new Date(today.getFullYear(), today.getMonth(), today.getDate() - today.getDay()-8);
var mondayOfWeek = new Date(today.getFullYear(), today.getMonth(), today.getDate() - today.getDay()+1);

console.log( mondayOfWeek );
console.log( sundayOfWeek );
于 2016-06-07T11:05:46.963 に答える