jQueryを使用した経過時間の表示スクリプトについての質問

このQ&Aのポイント
  • jQueryを使用した経過時間の表示スクリプトについての質問です。どうもバグがあるようで、修正方法がわかりません。
  • jQuery初心者です。以下のページの経過時間表示スクリプトを使いたいのですが、正しく表示されません。
  • 現在が11/12/2012-16:00:00と設定した場合、11/12/2012-01:00:00の経過時間が14時間になってしまいます。修正方法を教えてください。
回答を見る
  • ベストアンサー

jQuery を使用した経過時間の表示スクリプトに

jQuery 初心者です。 以下ページの経過時間表示スクリプトを使いたいのですが、 http://test.ogulcan.org/countup/ どうもバグ?があるようです。 現在が11/12/2012-16:00:00 とします。 (1).11/12/2012-00:00:00 → 16hours 0minutes 0 seconds (2).11/12/2012-01:00:00 → 14hours 0minutes 0 seconds 本来なら、(2)は15hours となると思うのですが、14hours になります。 なんとか修正したいと試みたのですが、どうしてもわかりません。 どなたか、わかる方いらっしゃいますでしょうか?

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

  • ベストアンサー
  • b0a0a
  • ベストアンサー率49% (156/313)
回答No.2

100行目辺り //hour difference var eHourString = parseInt(String(end.minute)+String(end.seconds) ,10); var sHourString = parseInt(String(start.minute)+String(start.seconds),10); if(end.hour < start.hour) { timeDiff.hour = 24 - Math.abs(end.hour - start.hour); if(eHourString < sDayString) timeDiff.hour--; } else if (end.hour == start.hour) { if(eHourString < sHourString) timeDiff.hour = 23; else timeDiff.hour = 0; } else if (end.hour > start.hour) { timeDiff.hour = end.hour - start.hour; if(eHourString < sDayString) timeDiff.hour--; } の2箇所の eHourString < sDayString は間違いです eHourString < sHourString に直してあげてください よくあるコピペでの修正忘れです 他にもなんだかソースが少し変ですね 別のを使うことをオススメします

warashi999
質問者

お礼

ありがとうございました。

その他の回答 (1)

  • my--
  • ベストアンサー率89% (91/102)
回答No.1

下記jquery.countup.js断片前後の文脈から察するに //hour difference var eHourString = parseInt(String(end.minute)+String(end.seconds) ,10); var sHourString = parseInt(String(start.minute)+String(start.seconds),10); if(end.hour < start.hour) { timeDiff.hour = 24 - Math.abs(end.hour - start.hour); if(eHourString < sHourString) timeDiff.hour--; // ココ } else if (end.hour == start.hour) { if(eHourString < sHourString) timeDiff.hour = 23; else timeDiff.hour = 0; } else if (end.hour > start.hour) { timeDiff.hour = end.hour - start.hour; if(eHourString < sHourString) timeDiff.hour--; // ココ } ではないかと。 推察しただけなので、動作の確認は自身でお願いします。

warashi999
質問者

お礼

ありがとうございました。 やってみます。

関連するQ&A

  • FLASHスクリプトの不具合?

    こんにちは。 現在携帯向け待ちうけFLASHを作成しています。 ランダムでキャラクターが表示されて、時計機能がついた 待ちうけとなります。 ランダムと時計のスクリプトを設定していますが、両方を機能させると 時計が時間を取得はしますが止まったまま先に進みません。 スクリプト設定は色々なサイトを参考にしているので間違いないと 思うのですが何が問題かわかりません。 どなたかご教授いただきたいです。 ---------------------------------------------------------- キャラクターは全部で7種類。 【ランダムのスクリプト】 fscommand2("SetQuality" , "high" ); r=random(8)+2; gotoAndStop(r); で設定しています。エミュレーターで確認したところちゃんとランダム表示されているので 問題はないと思います。 【時計のスクリプト】 /* ----時間の取得---- */ hours = fscommand2("GetTimeHours"); if( hours<10){ hours = String(hours); hours = "0" add hours; } h = hours; /* ----分の取得---- */ minutes = fscommand2("GetTimeMinutes"); if( minutes<10){ minutes = String(minutes); minutes = "0" add minutes; } m = minutes; /* ----秒の取得---- */ seconds = fscommand2("GetTimeSeconds"); if( seconds<10){ seconds = String(seconds); seconds = "0" add seconds; } s = seconds; こちらも単体設定ではちゃんと時間を取得して秒ごとに表示が変わります。 2フレーム目にもgotoAndPlay(1);を入れています。

  • 携帯FLASH時計をPC向けにしたい

    携帯用FLASHデジタル時計を作成し、動作の確認もとれたのですが、 これをパソコン用にスクリプトを簡単に書き直すことは可能なのでしょうか? /*時間*/ hours = fscommand2("GetTimeHours"); if( hours<10){ hours = String(hours); hours = "0" add hours; } h = hours; /*分*/ minutes = fscommand2("GetTimeMinutes"); if( minutes<10){ minutes = String(minutes); minutes = "0" add minutes; } m = minutes; /*秒*/ seconds = fscommand2("GetTimeSeconds"); if( seconds<10){ seconds = String(seconds); seconds = "0" add seconds; } s = seconds; 「h」「m」「s」はそれぞれ「時」「分」「秒」を表示させるダイナミックテキストとして同じムービークリップ内に配置してます。 FLASHのバージョンは8です。 どなたかわかる方おりましたら、宜しくお願いします。

  • 指定速度で時間経過する日時表示スクリプトが作りたい

    今晩は、勉強中のPHP初心者ですが宜しくお願いします。 PHP4で時間を指定の速度で経過させる(ように見せる)日時表示スクリプトを作りたいと思っています。 例えば、実際には1時間経過しているところを、スクリプトでは30分の経過にしたり、2時間の経過にしたりという感じに。 また、経過速度は時間ごとに指定できるようにしたいと考えています(24時間で日付を変えるため)。 とりあえずgetdate()やmktime()やstrtotime()などいじってみたのですが、意図している動作をさせるには程遠い感じで、全く的外れな部分をいじっている気もします。 googleなどの検索でも、似たようなスクリプトが見当たらないのでなかなか情報が得られず、どう組み立てればよいものか悩んでいます。 どなたか大まかな考え方やアイディアなど、もしあればアドバイスいただけないでしょうか。 簡単なヒント程度のものでも構わないので宜しくお願いします。

    • ベストアンサー
    • PHP
  • jQuery

    http://bmath.org/wordpress/?p=663 上記を参考にWEBページをつくってみたのですが、上手くいきません。 javascript部分をhtmlの <script type="text/javascript" src="js/site.js"></script>にいれたからでしょうか? また、jsフォルダは<script type="text/javascript" src="js/jquery.scrollTo-min.js">ではなく、jquery.scrollTo-1.4.3.1を使っています。 よきアドバイスお願いします。

    • ベストアンサー
    • CSS
  • 指定日時までのカウントダウン

    指定日時までのカウントダウンで、数字を画像で表示させたモノを作りたいのですが、 いろんなサンプル等を見ながら作ってみたものの、うまくいきません。。。 アドバイスをお願い致します。 <html> <head> <title>指定日までの残り日数+時間を画像で表示する</title> <script language="JavaScript"><!-- function xDay(y,m,d,hh,mm,ss) { today = new Date(); xday = new Date(y,m-1,d,hh,mm,ss); dayMS = (24*60*60*1000,60*60*1000); days = Math.floor((xday.getTime()-today.getTime())/(24*60*60*1000)); hours = Math.floor(((xday.getTime()-today.getTime())%(24*60*60*1000))/(60*60*1000)); minutes = Math.floor((((xday.getTime()-today.getTime())%(24*60*60*1000))/(60*1000))%60); seconds = Math.floor((((xday.getTime()-today.getTime())%(24*60*60*1000))/1000)%60%60); if (seconds<10) { seconds = "0"+seconds; } if (minutes<10) { minutes = "0"+minutes; } if (hours<10) { hours = "0"+hours; } days += ""; for (i=0; i<days.length; i++) document.write("<img src='clock/"+days.charAt(i)+".gif'>"); hours += ""; for (i=0; i<hours.length; i++) document.write("<img src='clock/"+hours.charAt(i)+".gif'>"); minutes += ""; for (i=0; i<minutes.length; i++) document.write("<img src='clock/"+minutes.charAt(i)+".gif'>"); seconds += ""; for (i=0; i<seconds.length; i++) document.write("<img src='clock/"+seconds.charAt(i)+".gif'>"); } // --></script> </head> <body> <script language="JavaScript"><!-- xDay(2008,4,21,12,00,00); // --></script> </body> </html>

  • サーバー上でJqueryが使用できない

    サーバー上でJqueryが使用できない jQueryを使用して、htmlに外部txtファイルの内容を表示しようとしています。 ローカル上では正常に動作するのですが、サーバーにアップしてみてみると、 javascriptのエラーが発生してし、txtの内容が表示されません。 ※IE8で確認したところエラー詳細は「オブジェクトを指定してください」 ※IE8とFireFoxで確認し、ともに表示されない。 原因として何が考えられるでしょうか? ちなみにソースは以下の様な感じです。 (txtファイルはhtmlと同階層に置いてあります) <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <script type="text/javascript" src="./js/jquery.js" ></script> <script language="JavaScript"><!-- function setNews(){ $("#news").load("news.txt"); } //--></script> </head> <body class="top_body" bgcolor="#000000" onload="setNews();"> <p id="news" class="news"></p> </body> </html>

  • jquery上で2つのスクリプトの合体

    下記のように「サブページその1  hoge.ne.jp/read1000.php」からスクレイピングしたtakahashiという文字を、「メインページ hogehoge.jp/index.html」の<input type="text">内に表示可能なスクリプトがあります。【現在できていること その1】 また、メインページで取得した変数123456を、URLという形で「サブページ2 read2222.php」のPHPに渡し、サブページ2の中で「123456についてのPHP処理した結果」を、再度メインページで取得して表示するスクリプトがあります。【現在できていること その2】 【やりたいこと】 この2つのスクリプトを合体させ「サブページ1 read1000.php」からスクレイピングしたtakahashiという文字を、URLという形で「サブページ2 read2222.php」のPHPに渡し、サブページ2の中で「takahashiについてのPHP処理した結果」を、再度メインページで取得して表示したいというのが今回の趣旨で、スタックしている部分となります。 ***************************************************************** 【現在できていること その1】 【サブページその1 http://hoge.ne.jp/read1000.php】 <table border="1"> <tbody> <tr> <td class="class3_sql_name">takahashi</td> </tr> </tbody> </table> 【メインページ http://hogehoge.jp/index.html】 <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script> <script src="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.js"></script> <script src="js/jquery.xdomainajax.js"></script> <script> // 引っ張ってきたいサイトのURL url = 'http://hoge.ne.jp/read1000.php'; $.get(url, function(data){ var content3_sql_name = $(data.responseText).find('.class3_sql_name').text();   $("[name='ca2_stock_name']").val(content3_sql_name); }); </script> <input type="text" name="ca2_stock_name" value="" /> ***************************************************************** 上記のスクリプトを実行すると、 <input type="text" name="ca2_stock_name" value="takahashi" /> という形が完成します。 ****************************************************************** 【現在できていること その2】 【サブページその2 http://hoge.ne.jp/read2222.php】 <div id="news200"> こんにちは <?php echo $_GET["name"]; ?> さん </div> 【メインページ http://hogehoge.jp/index.html】 <script type="text/javascript"> var usr_id='123456' $(function(){ $("#read200").load("https://hoge.ne.jp/read2222.php?name="+usr_id+" #news200 ul", function(data) { if(data == null){ $("#read200").append("読込みに失敗しました"); } }); }); </script> <div id="read200"></div> ***************************************************************** 上記のスクリプトを実行すると、 メインページ 上で、サブページ2の<div id="news200"/>....<div> 間を拾ってきて表示することができます。                → こんにちは123456さん メインページ内で「read2222.php?name="+usr_id+"」という形でURLとして一旦サブページ2にトスし、 $_GET["name"] でサブページで処理しものをあらためてメインページで表示させています。 ***************************************************************** 【やりたいこと】 上記の2つのスクリプトを合体させ、 var usr_id='123456' の代わりに、 【http://hoge.ne.jp/read1000.php】にある<td class="class3_sql_name">takahashi</td> のtakahashiを表示させたいと考えています。                → こんにちはtakahashiさん 考え方としては var content3_sql_name の変数をvar usr_idの代わりにすればいいだけです。 ************************************************************** 【試したがうまくいかなかったスクリプト】 <script type="text/javascript"> url = 'http://hoge.ne.jp/read1000.php'; $.get(url, function(data){ var content3_sql_name = $(data.responseText).find('.class3_sql_name').text(); $(function(){ $("#read200").load("https://hoge.ne.jp/read5555.php?name="+content3_sql_name+" #news200 ul", function(data1) { if(data1 == null){ $("#read200").append("読込みに失敗しました"); } }); }); }); </script> <div id="read200"></div> ********************************************************** どこがいけないのかご指導いただけませんでしょうか? 宜しくお願い致します。

  • jQueryでリスト項目の表示・非表示を切りかえる

    jQueryに詳しい方教えてください。 下記のようなHTMLがあって、 jQueryを使って<li>要素の表示/非表示を切り替えたいのです。 ---------------- HTMLスクリプト <ul class="test">  <li>項目1</li>  <li>項目1</li>  <li>項目1</li> </ul> 切り替えるタイミングはxmlのデータ内にflagを立てています。 flagの値は取得できました。(確認済み) 仕様としては、flagの値が 0の時は→<li>要素の1つ目と2つ目を表示させる。 1の時は→<li>要素の3つ目のみを表示させる。 2の時は→<li>要素のすべてを表示させる。 ということをしたいのです。 ですが、なぜかうまくいきません。 以下のように書きました。 if(flag==0){  $(".test li:eq(2)").hide(); }else if(settlementflag==1){  $(".test li:eq(0)"), .test li:eq(1)").hide(); }else if(settlementflag==2){  //何もしない }; そもそもこうゆう書き方で合っているのしょうか? jQueryを勉強したてで、恥ずかしいばかりですが、 ご教授のほど宜しくお願いいたします。

    • ベストアンサー
    • AJAX
  • JavascriptとJqueryを混在し記述

    JavascriptとJqueryが混在したスクリプトファイル(.js)の書き方について質問です。 Jquery自体がjavascriptで書かれており結局はjavascriptであるということは理解していますが 気になるので質問させてください。 通常、javascriptの書き方として、スクリプトやその関数定義を1つのjsファイルに書くと思いますが、 Jqueryが混在しても考えは一緒で、ただ、ページが全て読み込まれた後(要素を特定できるようにするため)に実行したい場合の スクリプトを $(function(){ //Jquryや通常のjavascript }); の中にこのように書けばいいって話ですよね? つまり1つのjsファイル内に以下のようにスクリプトを混在させた書き方でもいいのですよね? ===== script.js ====== //(1)Javaスクリプト ←jsファイルが読み込まれたら実行するスクリプト //関数定義 function test(){ //Javaスクリプト } //(2)Jquery ←ページが全て読み込まれた後で実行するスクリプト $(function(){ //Jqueryスクリプト //Javaスクリプト }); 初歩的なことかもしれませんがすいません。

  • jqueryにて

    こちらではお初にお世話になります。 よろしくおねがいします! さて、jqueryを用いてScrollFollowを実装中なのですが、 正常に動作させることが出来ません。 ソースは <script type="text/javascript" src="./jslib/ui.core.js"></script> <script type="text/javascript" src="./jslib/jquery-1.2.6.js"></script> <script type="text/javascript" src="./jslib/jquery.scrollfollow.js"></script> <script type="text/javascript" src="./jslib/jquery.easing.1.3.js"></script> <script type="text/javascript" src="./jslib/jquery.cookie.js"></script> <script type="text/javascript"> $( document ).ready( function (){ $('test').scrollFollow({ }); }); </script> をヘッド部分に、 <div id="test"> コンテンツ </div> をBODYに記述しています。 動作せずにFirefoxのエラーコンソールで確認したところ エラー: jQuery is not defined ソースファイル: (省略)update/jslib/ui.core.js 行: 238 エラー: $("test").scrollFollow is not a function ソースファイル: http://contest2009.thinkquest.jp/tqj2009/110392/update/ 行: 13 と表示されました。jsファイルの生存は確認できており、 その系統のミスではないと思うのですが。。。 どなたかアドバイスをお願いします!

専門家に質問してみよう