2016-09-06 14 views
1

私は数日間DateRangeSliderで働いてきたし、今私は、タイムスライダとしてそれを使用しています - fiddleJQDateRangeSlider変更開始/終了値

私の問題は、分、時間02:00とあるということです00:00にする必要があり、最大時間は23:59の代わりに01:59です。

私は

h = val.getHours(), 
m = val.getMinutes(); 

から

h = val.getUTCHours(), 
m = val.getUTCMinutes(); 

にフォーマッタ値を変更した場合、私はそれらの値を取得していたときに、それが正しいスタートエンドの時間が表示されますが:

var values = $("#slider").dateRangeSlider('values'); 
var test = values.min; 

残りの値は00:00ではなく02:00です。

最小/最大値をフォーマットする方法はありますか?値を読み取って同じ時間を表示する方法はありますか?

+0

私の答えをチェックしましたか?それは最初のものであり、私はその正しいことを確信しています。 – Dekel

+0

Dekel - 私はあなたの答えもチェックしましたが、その問題はデフォルト値が+2時間前であったことと、最小値と最大値を変更した場合にも問題になりました。 – Dana

+0

これはまさに私の解決策があなたに与えるものです。 + 2時間は、あなたがいるタイムゾーンに関連しています。私の答えの解決策は、あなたのコードがすべての日付と各タイムゾーン(あなたがどこにいようと)で動作することを確認します。 (年、月、日)など...文字列操作なしで元の値を使用できます。 – Dekel

答えて

1

TimeZoneと夏時間を考慮する必要があります(Date()オブジェクトがそれに依存しています)。

あなたのソリューションをすることができます:ここで

var minDateStr = "2014-01-01T00:00:00Z"; 
var maxDateStr = "2014-01-01T23:59:00Z"; 
var min2 = new Date(new Date(minDateStr).getTime() + new Date(minDateStr).getTimezoneOffset() * 60000), 
    max2 = new Date(new Date(maxDateStr).getTime() + new Date(maxDateStr).getTimezoneOffset() * 60000); 

あなたjsfiddleに修正です:
http://jsfiddle.net/z1govrt7/

+0

あなたは正しかった!ありがとう! :) – Dana

0

私は確認してください

var min2 = new Date(2014, 0, 1, 00, 00, 00), 
    max2 = new Date(2014, 11, 31, 23, 59, 59); 

以下のように日付と時刻の形式を更新しましたhttp://jsfiddle.net/LJrYf/149/フィドル今。

私はあなたのコードを更新し、現在は期待どおりに動作しています。

+0

ありがとうYogesh! :) – Dana

関連する問題