我一直在使用DateRangeSlider几天,现在我将它用作时间滑块 - fiddle
我的问题是最短时间是02:00,需要00:00,最长时间是01:59而不是23:59。
如果我从
更改了格式化程序值h = val.getHours(),
m = val.getMinutes();
到
h = val.getUTCHours(),
m = val.getUTCMinutes();
它会显示正确的开始结束时间,但是当我得到这些值时:
var values = $("#slider").dateRangeSlider('values');
var test = values.min;
它仍然获得其他值:02:00而不是00:00。
有没有办法格式化最小/最大值,但是当读取值显示相同的小时?
答案 0 :(得分: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/
答案 1 :(得分: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/小提琴。
我已更新您的代码,现在它按预期工作。