jQueryを使用して、以下の形式で日付を表示する方法。
Thursday, January 08, 2013
いくつかのプラグインを見ましたが、プラグインを使用しない方法があるかどうか疑問に思っています。
JavaScript を使用した簡単な回答があればアドバイスしてください。それも結構です。
jQueryを使用して、以下の形式で日付を表示する方法。
Thursday, January 08, 2013
いくつかのプラグインを見ましたが、プラグインを使用しない方法があるかどうか疑問に思っています。
JavaScript を使用した簡単な回答があればアドバイスしてください。それも結構です。
最も簡単な答えは、次を使用することです。
date.toLocaleDateString()
ただし、ユーザーのシステムによって定義されたロケールが使用されます。目的の出力に適合するアメリカ/英語のロケール。(他のロケールと、それらが日付をどのようにフォーマットするかについてはわかりません)。
したがって、日付文字列を常にその形式にしたい場合、これは最善の答えではありません。ただし、日付をユーザーのロケールと一致させたい場合は、この答えが最も簡単で最も正しいものです。:)
var date = new Date();
console.log(date.toLocaleDateString()); // Tuesday, January 08, 2013 (on my machine)
編集— 今日が火曜日ではなく木曜日になるようにカレンダーを変更する方法を尋ねている場合は、カレンダーの再編成の調整について Caesar に相談する必要があるかもしれません。そのためには、タイムマシンが必要です。ドクターを探すことをお勧めしますが、彼は歴史を意のままに変えようとはしないかもしれません。
これがあなたが求めているものの簡単な例です:
編集-再利用するためにコードを更新し、0日目のパディングの変更を含めました。
var d = new Date();
console.log(formatDate(d));
function formatDate(d){
var months = ["Januaray", "February", "March"]; //you would need to include the rest
var days = ["Sunday", "Monday", "Tuesday"];//you would need to include the rest
return days[d.getDay()] + ", " + months[d.getMonth()] + " " + (d.getDate() < 10 ? "0" + d.getDate() : d.getDate()) + ", " + d.getFullYear();
}
今日の出力:Tuesday, Januaray 08, 2013
車輪の再発明をしないために、単にDateJSを使用してください。
ここでAPIドキュメントを読むことができます:
日付メソッドを使用すると、日付と時刻のさまざまな部分をすべて数値として取得できます。月と曜日の場合、提供される数値は、通常よりも 1 少なくなります。この理由は、これらの値の最も一般的な用途は、配列から月または日の名前を検索するために使用することであり、JavaScript の配列はゼロから番号付けされるため、そのような番号を提供するとコード量が削減されるためです。名前の検索を行うために必要です。
ただし、取得した値を使用してこのルックアップを行うよりも、1 つうまくいくことができます。できることは、Date オブジェクトに追加のメソッドを追加して、日付に関する他の情報を取得するのとまったく同じ方法で、いつでも月と日の名前を取得できるようにすることです。
次のメソッドが JavaScript 言語自体に組み込まれていない理由として考えられるのは、これらのメソッドは言語に依存しており、月と日を表示する言語に応じてコードに異なる値を代入する必要があるためです。これをコーディングする方法を示します。月と日には英語の名前を使用します。日付を別の言語で表示したい場合は、その言語の名前を英語の対応する名前に置き換える必要があります。
getMonthName() および getDayName() メソッドをすべての日付に追加して、getMonth() または getDay() を呼び出す代わりに、これらの新しいメソッドを直接呼び出すことで月名または日名を取得できるようにします。次に、対応する名前の配列検索を行います。実際に行っているのは、適切なメソッドを呼び出すだけで、日付オブジェクトの正しい名前を自動的に取得できるように、必要な配列ルックアップを新しいメソッドに組み込むことです。
これを行うためにそれほど多くのコードは必要ありません。使用するすべての日付オブジェクトに getMonthName() メソッドと getDayName() メソッドを追加するために必要なことは、ページの先頭にある JavaScript コードの一番上に次の短いコードを追加することだけです。以降の日付オブジェクトの処理では、これらのメソッドを使用できます。
Date.prototype.getMonthName = function() {
var m = ['January','February','March','April','May','June','July',
'August','September','October','November','December'];
return m[this.getMonth()];
}
Date.prototype.getDayName = function() {
var d = ['Sunday','Monday','Tuesday','Wednesday',
'Thursday','Friday','Saturday'];
return d[this.getDay()];
}
これで、既存のメソッドに加えてこれらの新しいメソッドを使用してページに今日の日付を表示できるようになりました。たとえば、以下を使用して完全な日付を取得し、アラートを使用して表示できます。
var today = new Date;
alert((today.getDayName() + ', ' + today.getDate() + ' ' + today.getMonthName() + ', ' + today.getFullYear());
または、現在の月 June と曜日 Sunday を取得して、それらを使用することもできますが、日付の他の部分と同じようにします。
function disp() {
var today = new Date;
document.getElementById('mth').innerHTML = today.getMonthName();
document.getElementById('dow').innerHTML = today.getDayName();
}