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

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

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

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

Q&A

解決済

3回答

5310閲覧

[javascript] 「0時から9時まで」と「17時から24時まで」を30分単位等

maymay

総合スコア9

JavaScript

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

0グッド

0クリップ

投稿2017/12/08 04:57

「0時から9時まで」と「17時から24時まで」を30分単位等で作成したい
期待の結果:
00:00-00:30
00:30-01:00
01:00-01:30
...........
08:30-09:00

var today = new Date(); //時間を 00:00 形式で取得 var hour = today.getHours(); var minute = today.getMinutes(); var diff=30*60*60; var time_start = ('0' + hour).slice(-2) + ":" + ('0' + minute).slice(-2); var time_end=time_start+diff if(time >= "00:00" && time < "09:00"){ for(var k=0;k<diff.length;k++){ //処理 console.log(time_start+ "- " +time_end); }

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

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

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

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

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

KSwordOfHaste

2017/12/08 05:13 編集

コードを拝見すると「やりたいこと」に書かれている内容が充分でないような気がします。なぜ現在の時刻を取る必要があるのでしょう?
guest

回答3

0

ベストアンサー

javascript

1[...function*( { start, end, step, toStr = ( x => x.toString() ) } ){ 2 let current = start; 3 yield toStr( current, start, end, step ); 4 while ( ( current += step ) < end ) yield toStr(current, start, end, step); 5}({ 6 start: new Date().setHours( 0, 0 ), 7 end: new Date().setHours( 9, 0 ), 8 step: 30*60*1000, 9 toStr: ( x, _, __, step, options = [ 'en', { hour12: false, hour: '2-digit', minute: '2-digit' } ] ) => 10 `${ new Date(x).toLocaleString(...options) } - ${ new Date( x+step ).toLocaleTimeString(...options) }` 11})]

多少再利用性を高めてみました。

投稿2017/12/09 03:05

Lhankor_Mhy

総合スコア36104

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

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

maymay

2017/12/11 00:59

ご回答ありがとうございます! `${ new Date(x).toLocaleString(...options) } - ${ new Date( x+step ).toLocaleTimeString(...options) }`//これはjQuery を使いますか?使わない方法がありますか?
maymay

2017/12/11 05:27

ありがとうございました。解決ができました。
guest

0

こんな感じでシンプルに

javascript

1var NN = e=>(100+e).toString().substr(1); 2var nested = ([0,1,2,3,4,5,6,7,8,17,18,19,20,21,22,23].map(i=>[NN(i)+":00-"+NN(i)+":30", NN(i)+":30-"+NN(i+1)+":00"])); 3var result = Array.prototype.concat.apply([],nested)

投稿2017/12/08 06:08

matobaa

総合スコア2493

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

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

0

javascript

1var d=new Date(); 2d.setHours(0); 3d.setMinutes(0); 4d.setSeconds(0); 5while(d.getHours()<9){ 6 console.log(("0"+d.getHours()).substr(-2)+":"+("0"+d.getMinutes()).substr(-2)); 7 d.setMinutes(d.getMinutes()+30); 8} 9console.log(("0"+d.getHours()).substr(-2)+":"+("0"+d.getMinutes()).substr(-2));

投稿2017/12/08 05:05

yambejp

総合スコア114829

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問