2012-02-18 24 views
3

私はバスのウェブサイトプロジェクトで作業しており、バスは1時間ごとに動作しています。私は今と次の時間との間の時間を見つけるウィジェットを作成することに問題があるので、次のバスがいつ実行されるのかは明らかです。私のクライアントはJavaScriptが必要です。助言がありますか? ありがとうございます。次の時間までの時間を計算する

+2

あなたはこれまでどんなコードを持っていますか? – ohaal

+0

あなたは本当に時間が必要ではありません。次の時間までには、バス路線に1つの*停留所がなければ、時間とデルタが必要です。 –

答えて

1

は、あなたが何か行うことができ、JavaScriptではDateオブジェクトを持っている:あなたはそれらの計算により作業する必要がありますもちろんの

var now = new Date(); 
var mins = now.getMinutes(); 
var secs = now.getSeconds(); 
var response = "it will be " + (60 - mins - 1) + " minutes and " + (60 - secs) + " seconds until the next bus"; 

をしていますが、時間とともにどのように動作するか、それはのJavaScriptで

+0

私はそれを試してみるよ、ありがとう。 –

6
function getMinutesUntilNextHour() { return 60 - new Date().getMinutes(); } 

システムクロックがオフになっている人は、バスを見逃すことに注意してください。クライアントのコンピュータ上の時刻ではなく、サーバー時刻を使用する方が良いかもしれません(少なくとも部分的にはクライアント側ではないjavascriptソリューションです)。

0

ロット、次の1時間に、残りの丸みを帯びた分を取得するための本当に簡単な関数は次のとおりです。

function minsToHour() { 
    return 60 - Math.round(new Date() % 3.6e6/6e4); 
} 
+0

ここでのアプローチではなく、 'Date#getMinutes()'を60から引き算する方がいいでしょうか?何が起こっているのか分かりにくいです。私は1分ほど外れていると思っています。さらに、 'getMinutes'アプローチは、書くコードが少なく、覚えやすくなりました。 –

+0

なぜ人々は「過去には」バスを待っているのでしょうか?とにかく、それはそれを行う別の方法です。上記のように、最後の30秒以内に0を表示する必要があります。* getMintues()*は、秒も処理しない限り、最後の1分間に0を表示します。しかし、とにかくそれが問題ではないか、バスがスケジュールにどれくらい正確に固執しているかは疑問だ。 – RobG

2

今からに正確にミリ秒を知るために次の時間:

function msToNextHour() { 
    return 3600000 - new Date().getTime() % 3600000; 
} 

これは厳密にNEXT時までの秒数を教えてくれることに注意してください(これを4:00:00.000で実行すると正確に1時間が与えられます)。