Date オブジェクトの使用例 (JavaScript)
[履歴] [最終更新] (2015/01/30 10:53:54)
最近の投稿
注目の記事

コンストラクタ

// 現在時刻
var d = new Date();
console.log(d); // システムのタイムゾーンに変換して出力 (この例では JST)
//=> Thu Jan 29 2015 23:45:21 GMT+0900 (東京 (標準時))

// システムのタイムゾーン (以下の例では JST) での日付指定
d = new Date('2000/01/01');
console.log(d); // システムのタイムゾーンに変換して出力 (この例では JST)
//=> Sat Jan 01 2000 00:00:00 GMT+0900 (東京 (標準時))

// システムのタイムゾーン (以下の例では JST) での時刻および日付の指定
d = new Date(2000, 0, 31, 23, 59, 59, 0); // 年, 月(0-11), 日, 時(0-23), 分(0-59), 秒(0-59), ミリ秒
console.log(d); // システムのタイムゾーンに変換して出力 (この例では JST)
//=> Mon Jan 31 2000 23:59:59 GMT+0900 (東京 (標準時))

// Unix time (POSIX time, Epoch time, timestamp とも) での指定
// (↑1970/01/01 00:00:00 UTC からの秒数のことです)
d = new Date(0 * 1000); // 注意: ミリ秒で指定
console.log(d); // システムのタイムゾーンに変換して出力 (この例では JST)
//=> Thu Jan 01 1970 09:00:00 GMT+0900 (東京 (標準時))

システムのタイムゾーンでの値の設定および取得

var d = new Date(0 * 1000);

console.log(d.getFullYear()); //=> 1970 (注意: JST)
console.log(d.getMonth()); //=> 0 (注意: JST) (注意: 0-11で返されます)
console.log(d.getDate()); //=> 1 (注意: JST) (注意: getDay() は曜日(日:0 - 土:6) を返します)
console.log(d.getHours()); //=> 9 (注意: JST)
console.log(d.getMinutes()); //=> 0 (注意: JST)
console.log(d.getSeconds()); //=> 0 (注意: JST)

d.setFullYear(9999); // (注意: JST)
d.setMonth(0); // (注意: JST) (注意: 0-11 で指定します)
d.setDate(1); // (注意: JST)
d.setHours(23); // (注意: JST)
d.setMinutes(59); // (注意: JST)
d.setSeconds(59); // (注意: JST)
console.log(d); // システムのタイムゾーンに変換して出力 (この例では JST)
//=> Fri Jan 01 9999 23:59:59 GMT+0900 (東京 (標準時))

UTC での値の設定および取得

var d = new Date(0 * 1000);

console.log(d.getUTCFullYear()); //=> 1970
console.log(d.getUTCMonth()); //=> 0 (注意: 0-11 で返されます)
console.log(d.getUTCDate()); //=> 1
console.log(d.getUTCHours()); //=> 0  ← 9 でないことに注目!
console.log(d.getUTCMinutes()); //=> 0
console.log(d.getUTCSeconds()); //=> 0

d.setUTCFullYear(9999);
d.setUTCMonth(0); // (注意: 0-11 で指定します)
d.setUTCDate(1);
d.setUTCHours(23);
d.setUTCMinutes(59);
d.setUTCSeconds(59);
console.log(d); // システムのタイムゾーンに変換して出力 (この例では JST)
//=> Sat Jan 02 9999 08:59:59 GMT+0900 (東京 (標準時))   ← JST では +9時間 されていることに注目!

タイムゾーンを指定しての出力

var d = new Date(0 * 1000);

// システムのタイムゾーンでの出力 (この場合は JST)
console.log(d.toString()); //=> Thu Jan 01 1970 09:00:00 GMT+0900 (東京 (標準時))
console.log(d.toLocaleString()); //=> Thu Jan 01 1970 09:00:00 GMT+0900 (東京 (標準時))  // としても同じ

console.log(d.toDateString()); //=> Thu Jan 01 1970 // 日付のみを表示する場合
console.log(d.toLocaleDateString()); //=> Thursday, January 01, 1970 // としても同じ

console.log(d.toTimeString()); //=> 09:00:00 GMT+0900 (東京 (標準時)) // 時刻部分のみを表示する場合
console.log(d.toLocaleTimeString()); //=> 09:00:00 // としても同じ

// 標準時での出力
console.log(d.toUTCString()); //=> Thu, 01 Jan 1970 00:00:00 GMT
console.log(d.toGMTString()); //=> Thu, 01 Jan 1970 00:00:00 GMT  // としても同じ

特殊な設定および取得方法

// 文字列から Unix time を取得 (注意: システムのタイムゾーン、以下の例では JST で文字列を解析します)
var unixtime = Date.parse('9999/12/31'); // 注意: ミリ秒で取得します
// var unixtime = Date.parse('9999/12/31 00:00:00'); // としても同じです
var d = new Date(unixtime); // ミリ秒で指定 (つまりそのままでOK)
console.log(d); // システムのタイムゾーンに変換して出力 (この例では JST)
//=> Fri Dec 31 9999 00:00:00 GMT+0900 (東京 (標準時))

// 引数から Unix time を生成 (注意: UTCで指定します)
unixtime = Date.UTC(9999, 0, 1, 23, 59, 59, 0); // 年, 月(0-11), 日, 時, 分, 秒, ミリ秒 (注意: ミリ秒で取得します)
d = new Date(unixtime); // ミリ秒で指定 (つまりそのままでOK)
console.log(d); // システムのタイムゾーンに変換して出力 (この例では JST)
//=> Sat Jan 02 9999 08:59:59 GMT+0900 (東京 (標準時))   ← JST では +9時間 されていることに注目!

// UTC に変換するためにシステムのタイムゾーン (以下の例では JST) の値に適用すべき値 (つまり時差)
console.log(d.getTimezoneOffset()); //=> -540 (注意: 分で返されます)

// Unix time の設定および取得
d.setTime(1 * 1000); // (注意: ミリ秒で指定します)
console.log(d.getTime()); //=> 1000 (注意: ミリ秒で返されます)

加減算

var d = new Date(0 * 1000);

d.setFullYear(d.getFullYear() - 970);
console.log(d); //=> Wed Jan 01 1000 09:00:00 GMT+0900 (東京 (標準時))

d.setMonth(d.getMonth() - 1); // ← 必要に応じて自動的に年も減算されます
console.log(d); //=> Sun Dec 01 999 09:00:00 GMT+0900 (東京 (標準時))

d.setDate(d.getDate() - 1); // ← 必要に応じて自動的に月,年も減算されます
console.log(d); //=> Sat Nov 30 999 09:00:00 GMT+0900 (東京 (標準時))

// 「0日目」は前月の最終日を意味します。これは有用な事実です
d.setDate(0);
console.log(d); //=> Thu Oct 31 999 09:00:00 GMT+0900 (東京 (標準時))

// 「-1月目」は前年の最終月を意味します。あまり有用ではありません
d.setMonth(-1);
console.log(d); //=> Mon Dec 31 998 09:00:00 GMT+0900 (東京 (標準時))

// Date 同士の加減算は Unix time に変換して行います
var d1 = new Date(2015, 1, 1, 23, 59, 59, 0);
var d2 = new Date(2015, 1, 31, 23, 59, 59, 0);
var diff = (d2.getTime() - d1.getTime()) / (1000 * 60 * 60 * 24);
console.log(diff); //=> 30 (日)
関連ページ
    概要 データをもとにして DOM を操作する D3.js (Data-Driven Documents) の基本的な使い方を記載します。特にバージョンは v5 を対象とします。 Gallery D3 API Reference Hello world HTTP サーバ 外部からデータを読み込むために CORS
    概要 基本は理解しており大抵の処理は書ける人でも使用頻度が低いためか忘れてしまいがちな JavaScript の雑多な知識を書き出してみました。 タイマー 一定間隔毎に繰り返し実行 var intervalId; var intervalTime = 1000; //msec var cnt = 0; var intervalFunc = function(){ console.log(