I built a slider where you can pick a data and slide a slider. 问题是,当我从datepicker中选择“2013-02-01”并将滑块移动到凌晨1点时,我得到“2013-02-2”而不是“2013-02-02”。
这是我的代码:
$("#when").datepicker();
$("#open-till").slider({
range: "min",
value: 1230,
min: 1200,
max: 1860,
step: 30,
slide: slideTime
});
slideTime();
$("#SearchButton").click(function () {
SendData();
});
function slideTime(event, ui) {
var val0 = ui == undefined ? 1230 : ui.value,
minutes0 = parseInt(val0 % 60, 10),
hours0 = parseInt(val0 / 60 % 24, 10)
startTime = getTime(hours0, minutes0);
$("#time").text(startTime);
}
function getTime(hours, minutes) {
minutes = minutes == 0 ? '00' : minutes + "";
hours = hours + "";
if (hours.length == 1) {
hours = "0" + hours;
}
return hours + ":" + minutes;
}
function SendData() {
var WhenDateUnformatted = $('#when').val().split('/');
var startTimeSPLIT = startTime.split(':');
var parsedWhenDateUnformatted = parseInt(WhenDateUnformatted[1], 10);
if (startTimeSPLIT[0] < 20) {
WhenDateUnformatted[1] = (parsedWhenDateUnformatted + 1).toString();
}
var WhenDate = WhenDateUnformatted[2] + '-' + WhenDateUnformatted[0] + '-' + WhenDateUnformatted[1] + ' ' + startTime + ':00';
alert(WhenDate);
}
谢谢!
答案 0 :(得分:1)
var parsedWhenDateUnformatted = parseInt(WhenDateUnformatted[1], 10);
if (startTimeSPLIT[0] < 20) {
WhenDateUnformatted[1] = (parsedWhenDateUnformatted + 1).toString();
if (WhenDateUnformatted[1].length == 1) {
WhenDateUnformatted[1] = "0" + WhenDateUnformatted[1];
}
}
您将该值强制转换为int(没有前导零),操纵它,然后将其转换回来。 转换后,如果需要,您需要添加前导零。
内部if
以与上面几行相同的方式修复它。
答案 1 :(得分:0)
假设day
为WhenDateUnformatted[1]
,例如等于"01"
。
day
将parseInt
从字符串转换为数字,即"01"
至1
。1
添加到day
,即1
到2
。day
转换为字符串,即2
到"2"
。最后,您将使用与最初格式不同的格式连接数字。如果您在步骤3稍微修改转换,则可以保留格式,如下所示。
WhenDateUnformatted[1] = ("0" + (parsedWhenDateUnformatted + 1)).substring(0, 2);