デジタル時計の表示形式を変更したい

このQ&Aのポイント
  • デジタル時計の表示形式を変更する方法を探しています。
  • 現在の表示形式は、年/月/日/時:分:秒:ミリ秒ですが、年/月/日/時:分:秒の形式にしたいです。
  • 既存のスクリプトでは、静止テキストとして「/」と「:」が挟まれて表示されていますが、すべてのデータを二桁に表示するために修正したいです。
回答を見る
  • ベストアンサー

取得した時間の表示について。

現在デジタル時計を表示しています。が この表示の形を変更したいのです。 //以下スクリプト var now:Date; var h:Number, m:Number, s:Number,l:Number,d:Number,o:Number,p:Number; this.onEnterFrame = function() { now = new Date(); d = now.getFullYear(); o = now.getUTCMonth()+1; p = now.getUTCDate(); h = now.getHours(); m = now.getMinutes(); s = now.getSeconds(); l = now.getMilliseconds(); date.text = d; mon.text =o; day.text =p; Hours.text = h; Minute.text = m; Seconds.text = s; mini.text = l; } // このスクリプトでは現在、静止テキスト"/" 、":"を挟み 2006/12/ 2/ 18: 5:974 のように表示されます。 この時計の表示を 06/12/02/18:05:97 のように表示したい(すべてのデータを二桁に)のですが うまくいきません。 何か良い方法がないか探しております よろしくお願いします。

  • Flash
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
noname#35109
noname#35109
回答No.1

他のサイト(JavaScript や ActionScript系サイト)などのように普通に考えると, こう↓ではないでしょうか。 ------------------------------------------- var now:Date; var h:Number, m:Number, s:Number, l:Number, d:Number, o:Number, p:Number; this.onEnterFrame = function() { now = new Date(); d = now.getFullYear(); o = now.getUTCMonth()+1; p = now.getUTCDate(); h = now.getHours(); m = now.getMinutes(); s = now.getSeconds(); l = now.getMilliseconds(); // // ↓ココから下を変更↓ date.text = d.toString().substr(2, 2); if (o<=9) { mon.text = "0"+o; } else { mon.text = o; } if (p<=9) { day.text = "0"+p; } else { day.text = p; } if (h<=9) { Hours.text = "0"+h; } else { Hours.text = h; } if (m<=9) { Minute.text = "0"+m; } else { Minute.text = m; } if (s<=9) { Seconds.text = "0"+s; } else { Seconds.text = s; } // 結局コレ↓はどうしたいのかわかりません。 mini.text = l; }; ------------------------------------------- 上のような感じのはよく見ます。 得られた数が 9 以下であれば,前に "0" を付けるというものです。 すごく一般的で,私は今のところこのパターンしか見たことがありません。 もちろん, 変数名やテキストのインスタンス名に, o,p,h,s,m… と付けるのではなく, date0,date1,date2,date3… などと連番で付けておくと, 長い長い if 文は, for文で短くできますが, 人間が見るとわかりにくくなるので,これはどちらでも良いと思います。 しかし! 今回のご質問でもっと単純な考え方を閃きました。 ------------------------------------------- var now:Date; var h:Number, m:Number, s:Number, l:Number, d:Number, o:Number, p:Number; this.onEnterFrame = function() { now = new Date(); d = now.getFullYear(); o = now.getUTCMonth()+1; p = now.getUTCDate(); h = now.getHours(); m = now.getMinutes(); s = now.getSeconds(); l = now.getMilliseconds(); // // ↓ココから下を変更↓ date.text = d.toString().substr(-2, 2); mon.text = ("0"+o).substr(-2, 2); day.text = ("0"+p).substr(-2, 2); Hours.text = ("0"+h).substr(-2, 2); Minute.text = ("0"+m).substr(-2, 2); Seconds.text = ("0"+s).substr(-2, 2); // 結局コレ↓はどうしたいのかわかりません。 mini.text = l; }; ------------------------------------------- こうすれば,鬱陶しい if文が不要になります。 ちょっとした発明かもしれません。 (発明でないかもしれません。よくわかりません。) 1桁でも2桁でも何でも良いから, 強制的に前に "0" を付けて, 下2桁から2文字を取ってくるという方法です。 .substr(-2, 2); -2 は 最後から2文字目,2はそこから2文字 という意味です。 これで良いのではないでしょうか。 他で見たことがないので, どこかに落ち度があるかもしれませんが, おそらくこれで行けますよ。 ※ // 結局コレ↓はどうしたいのかわかりません。    mini.text = l;    は,どうしたいのかよくわかりません。    上のことから考えてみてください。

din1451
質問者

お礼

まずmini.text = l;は getmillisecondsでミリ秒を取得していた名残です。 うっかり削除するのを忘れていました。混乱させてしまい申し訳ありません。 そして肝心のスクリプトなのですがバッチリでした。 一桁の情報は一文字しか含んでいないという当たり前の事なのに 下二桁を得るというやり方は考えもしていなかったので こんなにスッキリ書いておられる事に本当に驚いています。 本当に助かりました。ありがとうございました。

関連するQ&A

  • 続・時間によって表示される画像を替えたい

    画像(サンプル画像アップ致しました)のようにしたいです。 先日私のご質問にお答え頂きました方に大変感謝申し上げます。 じつは昨日からずっとスクリプトと格闘しています。 もうお手上げです。ヒントでもいいです。お願いします。 詳細===== オープンorクローズの画像の下にデジタル時計をつけるにはどうしたらよいのでしょうか?? またJSファイルを外部化したいです。 画像は上部に<オープン画像>、<クローズ画像>がきて、 下段にデジタル時計が入ります。 時計は0~9までを、tokei/x.png...(x=0,1,2,3,,,,)として秒ごとに真ん中の『:』※tokei/chome.pngが点灯させたいです。 ここから下段に時計を入れたいのと、このファイルを外部に分けたいのですが、html内の画像の位置(htmlファイルに何と書いたら良いのか)をどうしたら良いのか分かりません。 お手数かけます。宜しくお願いします。 <script language="JavaScript"><!-- d = (new Date()).getDay(); h = (new Date()).getHours(); m = (new Date()).getMinutes(); if (d == 3) { Discg = "tokei/close.png"; }else if ((h>12 && h<19) || (h == 12 && m >= 0) && (h == 19 && m <= 30)) { Discg = "tokei/open.png"; }else { Discg = "tokei/close.png"; } document.write('<IMG src="' + Discg + '" border="0">'); </script>

  • JS 日付表示

    JavaScript for文の日付表示について JavaScriptでfor文で日付表示したい場合、月末の最終日を取得するだけでは月の切り替えができないのでしょうか? 今日から一週間後までを表示するアプリを作りたいのですが1/31を過ぎると2/1にならず1/32と表示されてしまいます。 何か間違っている所ありますでしょうか? 以下ソースコード <script type="text/javascript"><!-- var now = new Date(); var y = now.getFullYear(); var m = now.getMonth() + 1; var d = now.getDate(); console.log(now); // Thu Jan 30 2014 00:00:00 GMT+0900 (東京 (標準時)) console.log(new Date(now.getFullYear(), now.getMonth() + 1, 0)); // Fri Jan 31 2014 00:00:00 GMT+0900 (東京 (標準時)) for(i=0;i<100;i++){ document.write(y + "/" + m + "/" + (d + i).toString() + "<br>"); } // --></script> <body> </body>

  • 時間によって表示される画像を替えたい

    はじめまして。 私は自分のお店(お菓子のお店)ホームページをつくってます。 時間、曜日によって<open>、<close>の二枚の画像を入れ替えたいのですが上手くいきません。 オープン時間は12:00-19:30で、定休は水曜なので自分なりに書いてみたのですがダメでした。12-19時なら稼働したのですが30分が入ってくるとごっちゃなってしまいます。そうこうしているうちに文自体ごっちゃです。すみませんお助けねがえないでしょうか?? 宜しくお願い致します。 <script language="JavaScript"><!-- d = (new Date()).getDay(); h = (new Date()).getHours(); m = (new Date()).getMinutes(); if (d == 3) Discg = "tokei/close.png"; else if ((h > 0) && (h < 12)) Discg = "tokei/close.png"; else if ((h > 12) && (h < 19)) Discg = "tokei/open.png"; {document.write("<IMG src='" + Discg + "' border='0'>");} </script>

  • デジタル時計の曜日と時間

    フラッシュで簡単な携帯用壁紙を作ろうと思い、先日始めたばかりの超初心者です。 いろんなサイトを見て回ったのですがなかなか上手くいかないので質問させてください。 2007/12/20 Thursday という風に日付と曜日を別々に表示させたいと思っています。 見て回ったサイトはどこも全て一列に並べて表示しているので自分で分離してみたのですが、 日付のダイナミックテキストボックスは表示されても曜日のボックスが表示されません; アクションスクリプトを置いていきますのでどなたかご指南ください…>< var myDate = new Date(); var yobi = new Array ("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"); var y = myDate.getFullYear(); var m = myDate.getMonth()+1; var d = myDate.getDate(); var yb = myDate.getDay(); var yobi = yobi[yb]; $date = y+"/"+m+"/"+d; day.text = $date; yobi.text = yobi;

    • ベストアンサー
    • Flash
  • カウントダウンのタグ

    おバカな質問でごめんなさいです(T_T) 笑わないでね?! 呆れないでね?! カウントダウンのカウンター(?)を置きたくて いろんなサイトを見て作ろうと思ったのですが これじゃ~表示されなくて… 何が足りないですか? ()の中ってどうするのですか? たぶん… メチャクチャだと思うのでここに質問すること事態 恥ずかしくて迷いましたが宜しくお願いします。 m( _"_ )mペコ♪ <!-- var set_y = 2005; var set_m = 9; var set_d = 5; var now = new Date(); var spday= new Date(set_y,set_m-1,set_d); a = (spday.getTime() - now.getTime())/(24*60*60*1000); a= Math.ceil(a); if(a >0) document.write("あと",a,"日で○○○です。"); else if(a==0) document.write("<h2>○○○開催!!</h2>"); else if(a <0) document.write("○○○",-a,"日過ぎました・・・"); --> <script language="javascript"> <!-- //--> </script>

    • ベストアンサー
    • HTML
  • setTimeout()がうまくいきません

    以前、時計を一秒一秒、新しい絵を読み込んで バー表示型の時計を作ろうとしていた者ですが なんとか、1つの画像を連続表示させて 一本のバーにしていくスクリプトを 下記のように作りました そうしたところ、手動で更新をすると、うまく動作するのですが 自動で更新していこうと思いsetTimeout()を入れたのですが うまく動作してくれません。どのようにしたらよいのでしょうか <html> <head> <script language="JavaScript1.1"> <!-- function timesec() { var now = new Date() var s = now.getSeconds() var x = 60-s for(gj=0;gj<x;gj++) { var no = gj+1*x document.write("<img src='sec_1.gif' NAME='Name"+no+"'>") } } //--> </script> </head> <body> <script language="JavaScript1.1"> <!-- timesec() ----> </script> </body> </html>

  • 複数のRSSを取得した項目を別々に表示したい。

    Google AJAX Feed APIで、ホームページにRSSを表示する際、デフォルトでは、取得した複数のRSSを <div id="feed">...</div> に出力することができますが、 それらを、「私のブログ」のRSSを[feed]に「つれづれ日記」を[feed2]に個別に出力するにはどうすればいいのでしょうか? js内にあるfeedのIDを単純に書き換えても全体の表示する場所が変わるだけでした。 また、IDを変えた同じjsを設置したところ、片方がエラーになりました。 表示をどこでどう分岐すればいいのかわかりません。 下記のソースで、具体的には上のソースのどこにどういう風に記述するのかがわかりません。 いろいろ頑張ってはいるのですが、うまくいかず困ってます。 その辺のヒントをいただければありがたいのですが。 ソースは以下のとおりです。 <script src="Scripts/AC_RunActiveContent.js" type="text/javascript"></script> <script type="text/javascript" src="http://www.google.com/jsapi?key=........."></script> <script type="text/javascript"> <!--// google.load("feeds", "1"); var entryArray = new Array(); var entryNum = 0; function initialize() { feedAdd("http://feedblog.ameba.jp/私のブログ........../rss20.xml", 1); feedAdd("http://feedblog.ameba.jp/つれづれ日記........../rss20.xml", 2);//取得したサイトのRSSフィードを入力。足りない場合は適宜4,5,6....と増やす } function feedAdd(rssUrl, boolNum) { var feed = new google.feeds.Feed(rssUrl); feed.setNumEntries(2);//サイト1つあたりの取得するフィード数 feed.load(function(result) { if (!result.error) { for (var i = 0; i < result.feed.entries.length; i++) { entryArray[entryNum] = result.feed.entries[i]; var date = new Date(result.feed.entries[i].publishedDate); entryArray[entryNum].sortDate = ( date.getFullYear()*1000000 ) + ( (date.getMonth() + 1)*3600*32 ) + ( date.getDate()*3600 ) + ( date.getHours()*60 ) + date.getMinutes(); entryArray[entryNum].blogName = result.feed.title; entryNum+=1; } } if(boolNum==1){ feedOutput("feed", 10);//フィードの出力 } }); } function feedOutput(feedId, listNum){ var useFeed = ""; var useDate = ""; var container = document.getElementById(feedId); entryArray = asort(entryArray, "sortDate"); if(listNum==10){//出力するリスト数 listNum = entryNum; } for (var i = 0; i < listNum; i++) { var entry = entryArray[i]; var date = new Date(entry.publishedDate); var y = date.getFullYear(); if (y < 10) {y = "0" + y;} var m = date.getMonth() + 1; if (m < 10) {m = "0" + m;} var d = date.getDate(); if (d < 10) {d = "0" + d;} var h = date.getHours(); if (h < 10) {h = "0" + h;} var mn = date.getMinutes(); if (mn < 10) {mn = "0" + mn;} var s = date.getSeconds(); if (s < 10) {s = "0" + s;} if (entry.title.match(/.*PR:.*/mi) == null) { useDate = y + "年" + m + "月" + d + "日"; useFeed += '<div style="float:left;width:150px;margin:0px 0px 0px 5px">'+ y + "月" + m + "日" + d + " [" + h + ':' + mn + "]" +'</div><div style="float: left;width:220px;height:18px;overflow:hidden;"><a href="' + entry.link + '" target="_blank" title="' + entry.title + '【' + entry.blogName + '】">' + entry.title + '</a> <img src="http://b.hatena.ne.jp/entry/image/large/' + entry.link + '"></div><div style="float:left;width:100px;height:13px;overflow:hidden;max-width:8em;padding:1px 0px 0px 0px;margin:1px 0px 0px 0px">' +"(投稿) "+ entry.blogName + '</div>...<br><hr size="1"/>'; 以下BODY内 「私の日記」の最新情報 <div id="feed"> </div> 「つれづれ日記」の最新情報 <div id="feed2"> </div> 以上、よろしくお願いします。

  • デジタル時計のプログラムについて

    はじめまして。 FLASH初心者で、参考書片手に勉強しております。 デジタル時計をホームページに載せたいと思いまして、作ってみたのですが、プレビューで確認しても実際サーバーにアップロードしてみても文字が表示されなく困っております。 dispTimeというダイナミックテキストに時刻を表示させたく、アクションのレイヤーに以下を記述してみました。 _root.dispTime.onEnterFrame = function(){ now_date = new Date(); h = now_date.getHours(); m = now_date.getMinutes(); s = now_date.getSeconds(); _root.dispTime = h + ":" + m+ ":" +s; }; 環境は、WinXP home SP2、FLASH8です。間違っていそうな箇所がありましたら、ご教授宜しく御願い致します。

    • ベストアンサー
    • Flash
  • Javascriptでの更新日時表示について

    プログラミング初心者です。。。 初歩的なご質問ですいません。 ネットショップでページに自動で更新日を表示したいと考えています。 コチラでご教授いただき、表示するところまではできたのですが、肝心な定休日についての動作を忘れていました。。。 例えば ・毎週日曜日 ・指定した日付(緊急の定休日や祝日など) この二つの条件どちらかの場合、更新を行わない。というスクリプトを組みたいのです。。。 自分で色々調べてやってみたのですがどうも理解できず・・・ どうかご教授をお願いします>< ちなみに現在完成しているのはこんな感じです↓ (毎朝10時になったら更新されるようになっています。) <SCRIPT type="text/javascript"> <!-- date = new Date(); y = date.getFullYear(); m = date.getMonth() + 1; d = date.getDate(); var h = date.getHours(); if (h < 10) { d -= 1; } if (m < 10) { m = "0" + m; } if (d < 10) { d = "0" + d; } document.write(y + "/" + m + "/" + d); // --> </SCRIPT> どうぞよろしくお願いします;;

  • 年齢表示

    現在サイトで名簿を作成しているのですが、HTMLのtableを使用してリストにしてます。 年齢の項目のところで現在の年齢を表示させる為に下記のjavascriptのソースを使用しているのですが、30人分のリストなら30回使用しています。 <SCRIPT language="JavaScript"> <!-- var birthyear=1990; var birthmonth=11; var birthday=10; var age=0; now = new Date(); y=now.getYear(); m=now.getMonth()+1; d=now.getDate(); if(y<1900) {y=y+1900;} if(m < birthmonth){age=y-birthyear-1} if(m > birthmonth){age=y-birthyear} if(m == birthmonth){ if(d < birthday){age=y-birthyear-1} else{age=y-birthyear} } document.write(age+"歳"); //--> </SCRIPT> 30回も使用するとファイルのソース自体が長くなってしまってるので少しソースを簡潔化させたいのですが、良い方法はあるでしょうか?外部ファイルを使用する方法でも構いません。 ご存知の方いらっしゃいましたら、ご教授ください。 よろしくお願いします。

専門家に質問してみよう