FC2ブログ

溶岩の中はゲームまみれ

ゲーム好きのテラビモスが綴るブログ。普通の日記を書いたり、ゲームを紹介したりするブログです。

スポンサーサイト
--/--/--(--) --:--

タグ:
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【備忘録】Dateオブジェクトあれこれ【JavaScript】
2017/10/16(Mon) 22:40

テーマ:コンピュータ/プログラミング
タグ: プログラミング  備忘録  JavaScript  HTML 
今日の夕方ごろ、既に書いた記事の追記を行いましたが、今日は追記だけじゃ終わりません。

今回はゲーム関連の記事ではなく、プログラミング関連の記事になります。2016年9月頃に投稿された備忘録の第2弾になります。今回はJavaScriptで使えるDateオブジェクトについて書いていこうと思います。

※機会があったら、C言語やPHPなどのプログラミング言語の備忘録を書きますが、自分はJavaScriptをよく使っているので、備忘録もJavaScript関連ばかりになるかと…。

オブジェクトの生成

var date = new Date(value);
基本的には、valueに指定したい日付の情報を入れることになる。日付のフォーマットについては英語圏では一般的な『10-16-2017』のようなフォーマットの他、日本では一般的な『2017/10/16 20:27:34』のようなフォーマットでもオブジェクト生成は可能だ。また、このような書き方も可能だ。
var date = new Date(year, month, ...);
年、月、日などを一つずつ引数に代入するという方法である。年月日は代入必須で、時分秒ミリ秒まで指定できる(これは前者(文字列)の場合も同様)。
これらの変数は省略可能で、省略すると現在時刻の値を持つDateオブジェクトを取得する。

各値の取得

以下は、Dateオブジェクトで使うことのできるget系メソッドのうち、使うことが多いであろうメソッドの一覧である。
メソッド名説明
getFullYear()年(西暦・4桁)の取得。
getMonth()月の取得。
0~11の範囲の値を取得するので、表示する場合は+1すること。
例:
var date = new Date();
var m = date.getMonth() + 1;
getDate()日の取得。
getDay()曜日の取得。日曜日から順に0~6の値を返す。
getHours()時(24時制)の取得。
getMinutes()分の取得。
getSeconds()秒を取得。
getTime()1970年1月1日0時0分0秒からどれだけ経ったかをミリ秒で取得する。
日付の差を計算する際に有効。
特にgetMonth()の取り扱いには注意すること。

値の設定

setHours(value)やsetMinutes(value)などは、いずれも引数valueの値に応じて日付を設定するメソッドであるが、これらのメソッドはある日付から1時間後の日付や1日後の日付などを取得したい時には大変便利である。例えば、現在時刻を取得してから、現在時刻から1時間後の時刻を取得したいときは、
var date = new Date();
date.setHours(date.getHours() + 1);
とする。これだけで1時間後の時刻が取得できてしまう(うるう年とか西向く侍とか何も考える必要がない)。

日付の比較、差の計算

ただ単にどっちの日付の方が先(後)のものなのかを条件にするのであれば、『date1 < date2』のようにすればよい。しかし、指定した時刻が、現在時刻から何時間前であるか、などを条件にするのであれば、多少手間がかかる。日にちの比較であれば、差の計算を行うメソッドもあるようであるが、個人的には以下のような方法を勧めたい(差を求める対象を、Date1とDate2とする)。
var h = 3600 * 1000;    // ミリ秒を時間に換算
if((date1.getTime() - date2.getTime()) >= 2 * h) { // 日付の差が2時間以上であるとき
// 処理
}
getTimeメソッドを呼び出して、その返値を使って差を計算するというものである。個人的にはこれが一番確実で簡単。

備忘録としてはここまで。以下はおまけのようなもの(Dateオブジェクトの実用例)

時計

【コード(JavaScript)】
function clock() {
var date = new Date();
var dt = new Array();
dt[0] = date.getFullYear();
dt[1] = date.getMonth() + 1;
dt[2] = date.getDate();
var tm = new Array();
tm[0] = date.getHours();
tm[1] = date.getMinutes();
tm[2] = date.getSeconds();
var text = dt[0];
for(var i = 1; i < dt.length; i++) {
text += '/';
text += ('0' + dt[i]).slice(-2);
}
text += ' ';
for(var i = 0; i < tm.length; i++) {
if(i > 0) text += ':';
text += ('0' + tm[i]).slice(-2);
}
document.getElementById('clock').value = text;
}
【コード(HTML)】
<input type="text" id="clock">
<script type="text/javascript">
setInterval('clock()', 1000);
</script>

参考文献
https://msdn.microsoft.com/ja-jp/library/cd9w2te4(v=vs.94).aspx
関連記事

コメント:

備忘録にする必要あるのですか?

Dateオブジェクトは自分で作らないのであれば、そこまで備忘録にする必要も無いような気がします。

Dateオブジェクト自体のメソッド、プロパティがどのようなコードで成り立っているのか分からないと「いや、なんでこう処理出来るの」と思う人もいると思いますのでそういったコードも何とか書けないものでしょうか。

コメントの投稿

管理者にだけ表示を許可する

トラックバック:

http://terabimos.blog.fc2.com/tb.php/985-b1700726

«前の記事  | ホーム |  次の記事»

カレンダー

« | 2019-01 | »
S M T W T F S
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -

現在の時刻



日() 

月別アーカイブ

カテゴリ


カウンター


カウント開始:2013/06/10
今、人が閲覧していますよ♪

ブログランキング


このブログを面白いと思った方は、クリックしてください。一つ一つのクリックが管理人の励みになります。

アクセスランキング

[ジャンルランキング]
ゲーム
863位
アクセスランキングを見る>>

[サブジャンルランキング]
その他
166位
アクセスランキングを見る>>

プロフィール

テラビモス

テラビモス

ゲーム大好きです。やっているゲームの機種は任天堂寄りで、レトロゲームもほどほどに遊びます。

さらに詳しく ≫


FC2Ad

最近の記事

タグクラウド

ツイート


フォロー大歓迎です!私の趣味に合う人ならほぼ100%フォロバします。ポケモンの対戦や交換の申し込みもお気軽にどうぞ。それ以外でも気軽に声をお掛けください。

最近のコメント

最近のトラックバック

このブログをリンクに追加する

ブロとも申請フォーム

この人とブロともになる


QRコード

QR

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。