質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

3回答

1478閲覧

時間と時間の間をミリ秒

ikenirubasyu

総合スコア54

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2015/12/03 05:06

編集2015/12/03 06:08

協定世界時の 1970/01/01 00:00:00 から開始して、経過した時間をミリ秒で取得

(1)1449118158387 =約2015/12/03 13:50

(2)1449118829106 =約2015/12/03 14:00

(3)1449118867945 =約2015/12/03 14:01

質問なのですが、ミリ秒で時間と時間の間で探す場合、

例えば 2015/12/03 00:00:00 ~ 2015/12/03 23:59:59
までの時間の間にいくつか時間取得データがある場合に探すにはどのように書けばよいのでしょうか?
入っているデータは配列の中です。

取得したデータが上で3つあるとしたら、”3個”と取り出すようなプログラムを作りたいので、わかる方がいましたら回答お願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

これで出来ると思います。

JavaScript

1// 世界協定時の1970/1/1からのミリ秒を取得 2// Date.UTC(YYYY, M, D, H, m, s, S); 3var from = Date.UTC(2015,11,3,0,0,0,0); //月は0から始まります、12月は11で指定します 4var to = Date.UTC(2015,11,3,23,59,59,999);//月は0から始まるため、12月は11で指定します 5 6var array = [1449118867945, 1449118829106, 1449118158387]; 7var cnt = 0; 8for(var i = 0; i < array.length; i++){ 9 if (array[i] <= to && array[i] >= from){ 10 cnt++; 11 } 12} 13console.log(cnt);//コンソールに出力して値確認 いらないなら消す

投稿2015/12/03 05:52

moredeep

総合スコア1507

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ikenirubasyu

2015/12/03 06:06

moredeepさん 回答ありがとうございました。
guest

0

お示しの条件だと2015/12/03 23:59:59.001 のデータは除外されることになりますが、それでよろしいのでしょうか?
liguofeng29さんはその通りにプログラミングされていますが、おそらく要件は「2015/12/03のデータ」ではありませんか。
そうしたら、条件は「2015/12/03 00:00:00以降、2015/12/04 00:00:00よりも前」としないといけません。

投稿2015/12/03 05:50

yuba

総合スコア5568

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ikenirubasyu

2015/12/03 05:54

yubaさん 回答ありがとうございます。おっしゃる通り「2015/12/03のデータ」の中で、条件は「2015/12/03 00:00:00以降、2015/12/04 00:00:00よりも前」ということであっています。時間指定が勉強不足で間違ってました。
yuba

2015/12/03 06:00

これ以上は蛇足になるかもしれませんが、「23:59:59.999まで」という条件にしていれば正しかったのかというと、やはり正しいとは言えません、というところまで言わせてください。 どうしてかというと 1.Javascriptの時刻精度が1ミリ秒であるという知識を読み手に要求してしまう 2.将来にわたってJavascriptの時刻精度がより細かくならない保証がない の2点からですね。
ikenirubasyu

2015/12/03 06:05

yubaさん時刻の取得に関して細かいところまでご教授頂きありがとうございます。勉強になりました。
guest

0

失礼しました。

javascriptでしたね。再度確認します。

javascript

1<script type="text/javascript"> 2 3 var min = new Date( '2015/12/03 00:00:00' ).getTime(); 4 var max = new Date( '2015/12/03 23:59:59' ).getTime(); 5 6 var list = [1449118158387, 1449118829106, 1449118867945] 7 8 var i = 0; 9 var cnt = 0; 10 for (i = 0; i < list.length; i++) { 11 if (min <= list[i] && list[i] <= max) { 12 cnt++; 13 } 14 } 15 16 alert(cnt + "個"); 17</script>

投稿2015/12/03 05:17

編集2015/12/03 05:38
liguofeng29

総合スコア801

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ikenirubasyu

2015/12/03 05:28

liguofeng29さん回答ありがとうございます。 <long>とはどのような意味をもっているのでしょうか?数値の精度が保証される範囲みたいなものですか?
ikenirubasyu

2015/12/03 05:33 編集

連投すみません、初心者なのでよくわからないですが、これはjavascriptですか?
liguofeng29

2015/12/03 05:39

すみませんでした。 javascriptのコードに変えました。
ikenirubasyu

2015/12/03 05:50

liguofeng29さん。いえいえ、間違ってなくてよかったです。こちらこそありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問