所以我將時間存儲爲'01:30:00'。我有開始時間和日期時間下拉菜單。我希望將下拉列表設置爲開始時間+ 1小時。有沒有辦法通過JavaScript或jQuery添加時間?有沒有辦法增加使用JavaScript的時間?
這裏是我當前的代碼:
$(".start_time").change(function(){
$(".end_time").val($(this).val());
});
所以我將時間存儲爲'01:30:00'。我有開始時間和日期時間下拉菜單。我希望將下拉列表設置爲開始時間+ 1小時。有沒有辦法通過JavaScript或jQuery添加時間?有沒有辦法增加使用JavaScript的時間?
這裏是我當前的代碼:
$(".start_time").change(function(){
$(".end_time").val($(this).val());
});
試試這個:
%
返回索引0或1(分別爲00:00和00:30)$(".start_time").change(function(){
var sel =$(this).attr('selectedIndex');
var endIdx = (sel + 2) % 48; // 47 is 23:30, so 48 should go back to index 0
$(".end_time").attr('selectedIndex', endIdx);
});
基本例子......
var date = new Date();
var h = date.getHours() + 1;
var m = date.getMinutes();
var s = date.getSeconds();
alert('One hour from now: ' + h + ':' + m + ':' + s);
後您分析您的日期/時間字符串,可以使用諸如.setHours
在您的日期對象(更多信息在Mozilla Developer Center)。
我強烈建議使用來處理日期和時間。我相信它對你來說非常方便。
protip:儘量避免用「jQuery標記」替換JavaScript;畢竟,這全是JS。 :)
這裏有兩個單獨的問題:第一個是從您的.start_time
輸入中解析出時間,第二個是將它遞增到一個小時後。
第一個實際上是一個字符串操作練習。一旦你分析出了字符串的片段,例如通過正則表達式,你可以將它們變成一個Date
實例並使用setHours
,或者你可以將組件作爲數字操縱,然後按照你想要的格式將它們重新組合成一個字符串。
這方面的一個例子可能是如下:
var TIME_PARSING_REGEX = /([0-9]{2}):([0-9]{2}):([0-9]{2})/;
function padToTwoDigits(number) {
return (number < 10 ? "0" : "") + number;
}
$(".start_time").change(function() {
var stringTime = $(this).val();
var regexResults = TIME_PARSING_REGEX.exec(stringTime);
var hours = parseInt(regexResults[1], 10);
var newHours = (hours + 1) % 24;
var newHoursString = padToTwoDigits(newHours);
var minutesString = regexResults[2];
var secondsString = regexResults[3];
var newTimeString = newHoursString + ":" + minutesString + ":" + secondsString;
$(".end_time").val(newTimeString);
});
這兩個下拉菜單在相同的順序中有相同的選項?他們都是小時候嗎? – 2011-05-16 04:50:15
他們都有相同順序的選項。他們是半小時。所以它的凌晨1點,凌晨1點30分等 – raeq 2011-05-16 04:51:35