アプリ版:「スタンプのみでお礼する」機能のリリースについて

質問2点あります

■1.formのselectでJavaScriptを使って現在時刻を反映させたプルダウンの作り方を教えてください。
■2.プルダウンの表示を現在の時刻から30分間隔で表示させたい。

以上、どなたかご教示いただけるととっても助かります!

A 回答 (3件)

//動かないときは、あきらめて!



<!DOCTYPE html>
<meta charset="UTF-8">
<title>ES2015がすでにあるというのに</title>
<style>
</style>

<body>
<form id="hoge">
<select id="fuga"></select>
</form>

<script>

function* getTime (count = 0, D = new Date, step = 30) {
 const
  zp = n => ('0' + n ).slice (-2);

 while (count--) {
  let
   H = D.getHours ();
   M = D.getMinutes ();

  yield [
   zp (H),
   zp (M)
  ].join (':');

  D.setMinutes (M + step);
 }
}


const select = document.querySelector ('#fuga');
 
//for (let e of select.childNodes) e.remove ();

for (let t of getTime (10))
 select.appendChild (new Option (t, t));

</script>
    • good
    • 1
この回答へのお礼

動きました!
本当にありがとうございます!!

お礼日時:2018/08/16 19:32

とりあえず最低限の仕様でこんな感じに作ってみました。



<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript">
function getSelectValue(n) {
return("0"+parseInt(n / 2)).substr(-2) + ":" + ("0"+(n * 30 % 60)).substr(-2);
}
</script>
</head>
<body>
<form>
<select>
<script type="text/javascript">
var d = new Date();
var s = d.getHours() * 2 + parseInt(d.getMinutes() / 30);
for(var i = 0; i < 48; i++) {
document.write("<option value="+ getSelectValue((s + i) % 48) +">"+ getSelectValue((s + i) % 48) +"</option>");
}
</script>
</select>
</form>
</body>
</html>
    • good
    • 1
この回答へのお礼

動きました!
本当にありがとうございました!
babu_babu_babooさんが現在時刻が分単位の表示でしたのでそちらをベストアンサーにさせて頂きました。

お礼日時:2018/08/16 19:34

<option value=…


の時分を30分づゝ増やして何回か回してやればなんとかなるけど日をまたいだときにどうするのかが仕様に必要かも。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!