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

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

ただいまの
回答率

91.35%

  • JavaScript

    11209questions

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

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

解決済

回答 3

投稿 2017/12/08 13:57

  • 評価
  • クリップ 0
  • VIEW 121

maymay

score 1

「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);
}
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • KSwordOfHaste

    2017/12/08 14:13 編集

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

    キャンセル

回答 3

checkベストアンサー

+2

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


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

投稿 2017/12/09 12:05

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/12/11 09:59

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

    キャンセル

  • 2017/12/11 10:08

    jQueryは使ってないです。テンプレートリテラルです。
    https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/template_strings

    キャンセル

  • 2017/12/11 14:27

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

    キャンセル

+1

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

投稿 2017/12/08 14:05

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

こんな感じでシンプルに

var NN = e=>(100+e).toString().substr(1);
var 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"]));
var result = Array.prototype.concat.apply([],nested)

投稿 2017/12/08 15:08

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

ただいまの回答率

91.35%

関連した質問

同じタグがついた質問を見る

  • JavaScript

    11209questions

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