最も簡単なことをして、日付/時刻を入力し、その時刻までの時間:分:秒を書き出す必要があります。私はそれを理解することができませんでした。素晴らしいDatejsを使ってみましたが、この機能が組み込まれていないようです。
時間は0分->20分の範囲になります
ありがとう!
最も簡単なことをして、日付/時刻を入力し、その時刻までの時間:分:秒を書き出す必要があります。私はそれを理解することができませんでした。素晴らしいDatejsを使ってみましたが、この機能が組み込まれていないようです。
時間は0分->20分の範囲になります
ありがとう!
とても単純なもののためにライブラリを気にしないでください。ライブラリを使用するかどうかに関係なく、入力日付文字列の形式を知っている必要があるため、ISO8601 (2013-02-08T08:34:15Z など) を想定すると、次のようなことができます。
// Convert string in ISO8601 format to date object
// e.g. 2013-02-08T02:40:00Z
//
function isoToObj(s) {
var b = s.split(/[-TZ:]/i);
return new Date(Date.UTC(b[0], --b[1], b[2], b[3], b[4], b[5]));
}
function timeToGo(s) {
// Utility to add leading zero
function z(n) {
return (n < 10? '0' : '') + n;
}
// Convert string to date object
var d = isoToObj(s);
var diff = d - new Date();
// Allow for previous times
var sign = diff < 0? '-' : '';
diff = Math.abs(diff);
// Get time components
var hours = diff/3.6e6 | 0;
var mins = diff%3.6e6 / 6e4 | 0;
var secs = Math.round(diff%6e4 / 1e3);
// Return formatted string
return sign + z(hours) + ':' + z(mins) + ':' + z(secs);
}
文字列を日付に変換する関数をいじる必要があるかもしれませんが、それほど多くはありません。クライアントの現地時間が提供された日時値のタイムゾーンに設定されていることが確実でない限り、とにかく UTC タイムストリングを提供する必要があります。
Date.jsの代わりに、 Moment.jsを試してください。