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

http://www.gifu-marathon.jp/
こちらのページに使われているカウントダウンを参考にしています。
このカウンターにミリ秒を追加したいのですが、どのように記述したらいいでしょうか。

<script type="text/javascript">
(function($){
$.fn.countdownSimple = function(options) {
var opts = $.extend({}, $.fn.countdownSimple.defaults, options);
return this.each(function() {
CountDown($(this), opts);
});
function CountDown ($obj, opts) {
var now, point, diff, dy, hr, minr, sr,
thisInterval = window.setInterval( function() {
now = new Date();
point = new Date( opts.until );
diff = Math.floor(
( point.getTime() - now.getTime() ) / 1000 );
dy = Math.floor( diff / 86400 );
hr = Math.floor( diff % 86400 / 3600 );
minr = (Math.floor( diff % 86400 / 60 ) % 60 );
sr = (Math.floor( diff % 86400 % 60 ) % 60 );
if(diff>0) {
$obj.html( "" + dy + ":"
+ "" + zerofill(hr) + ":"
+ "" + zerofill(minr) + ":"
+ "" + zerofill(sr) + "" );
} else {
$obj.html( opts.complete );
clearInterval(thisInterval);
}
}, 980);
};
function zerofill(str) {
var str = "00" + str;
return str.substr(str.length-2, 2);
};
};
$.fn.countdownSimple.defaults = {
until: "2011/12/31",
complete: "Time Over!"
};
})(jQuery);

$(document).ready( function() {
$('div#countdown').countdownSimple({
until: "2014/5/18 9:00:00",
complete: "岐阜清流ハーフマラソンスタート!!"
});
});

</script>

A 回答 (1件)

こんにちは。



PCの時間は、一応ミリ秒(1/1000秒)単位になっています。

ご提示のスクリプトでは
 >diff = Math.floor(
 >( point.getTime() - now.getTime() ) / 1000 );
としているところで、最初に 1/1000 にしているので、秒単位にしていることになります。

ここを1000で割らずに、ミリ秒単位のままにしておいて、そのかわり後の計算をこれに応じて修正し、1000以下の数値分をミリ秒として追加表示すればご質問のようなことが可能になります。


ただし、計算速度がそれほど速くはないと思いますので、計算のインターバルを1/1000秒にすることはナンセンスでしょう。
それなので、精度が表示に見合っているかといえば、それは期待できないことになりそうです。
(仮に表示できたとしても、人が1/1000秒を読みとれるとも思えませんが…) 
    • good
    • 0
この回答へのお礼

時間が迫ってる感を出したくて
ミリ秒を出そうとしていました。

ありがとうございます。うまく出来ました!

お礼日時:2014/05/15 20:04

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