特定の月の日数を取得します
皆さんは小学生の頃、一年の 12 か月がそれぞれ何日あるかを知っていたと思います。2 月には特別な存在があります。閏年の 2 月は 29 日ありますが、閏年以外の 2 月は 28 日しかありません。私と同じように、閏年のルールを忘れている人も多いと思われますが、このときは次の方法が役に立ちます。
var date = new Date(2013, 2, 0);
date.getDate(); // 28
date = 新しい日付(2012, 2, 0);
date.getDate(); // 29
Date オブジェクトを作成するときは、年、月 (0 ~ 11、0 は 1 月を意味します)、日の 3 つのパラメータを渡すことができます。日パラメータが 0 の場合、作成されるオブジェクトは前月の最終日を表します。これで、先月の日数がわかります。
同様に、このメソッドを使用して、特定の年が閏年であるかどうかを判断することもできます。
関数 isLeapyear(年) {
新しい Date(year, 2, 0).getDate() === 29;
を返します。
}
isLeap Year(2012) // true
;
タイムゾーンを取得
日付型の getTimezoneOffset() メソッドは、グリニッジ時間と現地時間の時差を分単位で取得できます。例:
var date = new Date();
var timezoneOffset = date.getTimezoneOffset(); // 中国 (東第 8 地区) は -480
-timezoneOffset // 8
得られた時差を60で割ったマイナスの値をタイムゾーンとします。
これ以外にも、別の方法があります。日付型の toString() を呼び出した後、固定形式の日付文字列を取得できます:
new Date().toString(); // 2013 年 3 月 10 日日曜日 16:41:12 GMT 0800 (中国標準時)
明らかに、GMT 後の 800 が、正規表現と照合することで値を取得できます。
/GMT([ -]d )/.test( new Date().toString() );
var timezone = RegExp.$1 // 0800
;
ただし、このときのタイムゾーン変数は文字列なので数値型に変換する場合は何らかの処理が必要です。
実行時間を計算する
特定のプログラムの実行時間を測定するにはどうすればよいですか?方法は非常に簡単です。実行前に時間を記録し、実行後、現在の時間から実行前の時間を減算して結果を取得します。
var startTime = new Date();
// 何らかのプログラム
console.log(new Date() - startTime);
減算演算により自然に変換が強制されるため、ここでは手動で日付を数値に変換する必要はありません。この方法で計算された結果はミリ秒レベルであり、あまり正確ではありませんが、ブラウザ側の Javascript では、1 ミリ秒以内の消費を心配する必要はありません。
Cookie を削除
正確に言うと、JavaScript を通じて Cookie を直接削除することはできません。 Cookie を世界から消去する唯一の方法は、Cookie を期限切れにし、ブラウザーの組み込みメカニズムによって自動的に削除されるようにすることです。
Cookie の有効期限を設定する最も簡単な方法は、有効期限を最小値に設定することです。 Javascript で表現できる最小の日付は、1970 年 1 月 1 日の 0:00:00 です。このような日付オブジェクトは、new Date(0):
を通じて作成できます。
var cookieName = '名前' // クッキー名
;
document.cookie = cookieName '=' '; 有効期限=' new Date(0).toUTCString();