ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScriptのDateオブジェクトの操作を詳しく解説(7日間カウントダウンする配列の生成)_JavaScriptスキル
問題の説明:
JavaScript を使用して 7 日間のカウントダウン配列を生成します。
たとえば、今日は 10 月 1 日で、生成される配列は ["9 月 25 日"、"9 月 26 日"、"9 月 27 日"、"9 月 28 日"、"9 月 29 日" 、"9 月 30 日"、"10 月 1 日" です。 」]。
難しいのは、今月 (おそらく先月も) が 30 日か 31 日か、また Rui Nian の 2 月に 28 日か 29 日があるかを判断する必要があることです。
答えのアイデア:
それほど複雑である必要はありません。js では非常に簡単です。js の date オブジェクトは数学的演算に参加できるからです。 ! !以下のコードを見てください:
var now = new Date('2012/3/2 12:00:00'); // 这个算法能自动处理闰年和非闰年。2012年是闰年,所以2月有29号 var s = ''; var i = 0; while (i < 7) { s += now.getFullYear() + '/' + (now.getMonth() + 1) + '/' + now.getDate() + '\n'; now = new Date(now - 24 * 60 * 60 * 1000); // 这个是关键!!!减去一天的毫秒数效果就是把日期往前推一天 i++; } console.log(s);
結果は以下のようになります:
要件が特定の日の時刻を指定せず、システムの現在時刻に基づいて計算される場合も可能です。
現在のシステム時間に基づいて、この 7 日間のカウントダウン配列を計算します:
var now = new Date(); // このアルゴリズムは、うるう年と非うるう年を自動的に処理できます。 2012 年は閏年なので、2 月は 29 日になります
var s = '';
var i = 0;
while (i
s = now.getFull Year() '/' (now.getMonth() 1) '/' now.getDate() 'n';
Now = new Date(now - 24 * 60 * 60 * 1000); // これが重要です。 ! ! 1 日のミリ秒を減算すると、日付が 1 日進みます
私;
}
console.log(s);
結果は図に示すようになります:
上記がこの記事の全内容です。js の日付オブジェクトの操作を学習する皆さんのお役に立てれば幸いです。次の記事では、js の日付形式の問題について説明します。詳細については、JavaScript の日付形式 をクリックしてください。