回答
Date.parse('01/01/2011 10:20:45') > Date.parse('01/01/2011 5:10:10')
> true
1月1日是任意日期,並不代表什麼意思。
**注意**:由於瀏覽器的差異和不一致,強烈建議不要使用'Date.parse'解析字符串。 [MDN](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date#Methods) – 2017-01-31 00:22:11
試試看看這個代碼。
var startTime = "05:01:20";
var endTime = "09:00:00";
var regExp = /(\d{1,2})\:(\d{1,2})\:(\d{1,2})/;
if(parseInt(endTime .replace(regExp, "$1$2$3")) > parseInt(startTime .replace(regExp, "$1$2$3"))){
alert("End time is greater");
}
由於費利克斯·克林在評論中說,只要你的時間以24小時制(他們應該是如果沒有AM/PM),並提供他們總是在HH:MM:SS
你可以做一個直接的格式字符串比較:
var str1 = "10:20:45",
str2 = "05:10:10";
if (str1 > str2)
alert("Time 1 is later than time 2");
else
alert("Time 2 is later than time 1");
+1 ......... :) – 2011-06-02 09:06:49
這是依賴於使用ASCII代表,因爲代碼很方便 – 2013-03-25 20:12:42
這個方法,如果我比較字符串'str1 =「00:10」'與'str2 =「01:10」'並檢查如果字符串1大於那麼字符串2警告字符串字符串一個大於其他字符警告字符串2更大我認爲12PM比1AM更粗,但它顯示字符串2更大 – Ali 2013-08-02 19:43:19
試試此代碼的24小時格式的時間。
<script type="text/javascript">
var a="12:23:35";
var b="15:32:12";
var aa1=a.split(":");
var aa2=b.split(":");
var d1=new Date(parseInt("2001",10),(parseInt("01",10))-1,parseInt("01",10),parseInt(aa1[0],10),parseInt(aa1[1],10),parseInt(aa1[2],10));
var d2=new Date(parseInt("2001",10),(parseInt("01",10))-1,parseInt("01",10),parseInt(aa2[0],10),parseInt(aa2[1],10),parseInt(aa2[2],10));
var dd1=d1.valueOf();
var dd2=d2.valueOf();
if(dd1<dd2)
{alert("b is greater");}
else alert("a is greater");
}
</script>
var startTime = getTime(document.getElementById('startTime').value);
var endTime = getTime(document.getElementById('endTime').value);
var sts = startTime.split(":");
var ets = endTime.split(":");
var stMin = (parseInt(sts[0]) * 60 + parseInt(sts[1]));
var etMin = (parseInt(ets[0]) * 60 + parseInt(ets[1]));
if(etMin > stMin) {
// do your stuff...
}
不起作用。格式是「12:34:56」。這是將小時數視爲分鐘,將分鐘視爲秒數,而忽略秒數:var stMin =(parseInt(sts [0])* 60 + parseInt(sts [1])); – HoldOffHunger 2017-09-14 19:14:31
我不使用正則表達式那麼舒服,並且從一個DateTimePicker場我的示例結果格式M/d/Y H:毫安。在這個合法的例子中,你必須在實際的證詞聽證會之前到達。我使用replace函數來清理日期,以便我可以將它們作爲Date對象處理並進行比較。
function compareDateTimes() {
//date format ex "04/20/2017 01:30PM"
//the problem is that this format results in Invalid Date
//var d0 = new Date("04/20/2017 01:30PM"); => Invalid Date
var start_date = $(".letter #depo_arrival_time").val();
var end_date = $(".letter #depo_dateandtime").val();
if (start_date=="" || end_date=="") {
return;
}
//break it up for processing
var d1 = stringToDate(start_date);
var d2 = stringToDate(end_date);
var diff = d2.getTime() - d1.getTime();
if (diff < 0) {
end_date = moment(d2).format("MM/DD/YYYY hh:mA");
$(".letter #depo_arrival_time").val(end_date);
}
}
function stringToDate(the_date) {
var arrDate = the_date.split(" ");
var the_date = arrDate[0];
var the_time = arrDate[1];
var arrTime = the_time.split(":");
var blnPM = (arrTime[1].indexOf("PM") > -1);
//first fix the hour
if (blnPM) {
if (arrTime[0].indexOf("0")==0) {
var clean_hour = arrTime[0].substr(1,1);
arrTime[0] = Number(clean_hour) + 12;
}
arrTime[1] = arrTime[1].replace("PM", ":00");
} else {
arrTime[1] = arrTime[1].replace("AM", ":00");
}
var date_object = new Date(the_date);
//now replace the time
date_object = String(date_object).replace("00:00:00", arrTime.join(":"));
date_object = new Date(date_object);
return date_object;
}
在JS支持比較
var str1 = "150:05:05",
var str2 = "80:04:59";
function compareTime(str1, str2){
if(str1 === str2){
return 0;
}
var time1 = str1.split(':');
var time2 = str2.split(':');
for (var i = 0; i < time1.length; i++) {
if(time1[i] > time2[i]){
return 1;
} else if(time1[i] < time2[i]) {
return -1;
}
}
}
Date
對象,將它們設置爲比較HH同一日期:MM:SS:
new Date ('1/1/1999 ' + '10:20:45') > new Date ('1/1/1999 ' + '5:10:10')
> true
您可以輕鬆地做到這一點下面的代碼:
Note:RegExp中的第二個參數是全局搜索標誌'g'。 全局搜索標誌使得RegExp在整個字符串中搜索一個模式,創建一個匹配給定模式的所有匹配項的數組。
var regex = new RegExp(':', 'g'),
timeStr1 = '5:50:55',
timeStr2 = '6:17:05';
if(parseInt(timeStr1.replace(regex, ''), 10) < parseInt(timeStr2.replace(regex, ''), 10)){
console.log('timeStr1 is smaller then timeStr2');
} else {
console.log('timeStr2 is smaller then timeStr1');
}
我從@ kamil-p解決方案改進了此功能。 我忽略了秒比較。您可以通過注意您的使用來爲此功能添加秒鐘邏輯。
僅適用於「HH:mm」時間格式。
function compareTime(str1, str2){
if(str1 === str2){
return 0;
}
var time1 = str1.split(':');
var time2 = str2.split(':');
if(eval(time1[0]) > eval(time2[0])){
return 1;
} else if(eval(time1[0]) == eval(time2[0]) && eval(time1[1]) > eval(time2[1])) {
return 1;
} else {
return -1;
}
}
例如
alert(compareTime('8:30','11:20'));
感謝@卡米爾-P
我想你可以把它像這樣。
var a = "10:20:45";
var b = "5:10:10";
var timeA = new Date();
timeA.setHours(a.split(":")[0],a.split(":")[1],a.split(":")[2]);
timeB = new Date();
timeB.setHours(b.split(":")[0],b.split(":")[1],b.split(":")[2]);
var x= "B is later than A";
if(timeA>timeB) x = "A is later than B";
document.getElementById("demo").innerHTML = x;
<p id="demo"></p>
- 1. 在IOS中兩次之間比較時間(格式爲HH:MM:SS)
- 2. 比較兩次(hh:mm:ss)字符串
- 3. 字符串日期時間「hh:mm:ss」或「dd.mm.yyyy hh:mm:ss」格式
- 4. 比較兩個字符串Java風格
- 5. 如何比較兩個w_char []字符串
- 6. 如何比較兩個字符串
- 7. 如何比較兩個Q字符串?
- 8. Javascript如何比較兩個字符串
- 9. 如何比較兩個字符串?
- 10. 如何比較兩個base64字符串?
- 11. 比較兩個字符串[]
- 12. 比較兩個字符串?
- 13. 比較兩個字符串
- 14. 在日期時間比較唯一一次字符串的形式HH:MM:SS
- 15. 同時比較兩個字符串
- 16. Java的Android的比較時間從字符串格式
- 17. 比較字符串格式中的兩個日期
- 18. 檢索時間()作爲HH:MM:SS字符串
- 19. mysql如何比較兩個字符串之間的字符串並返回行
- 20. iOS - 如何比較兩個ISO 8601格式化的時間?
- 21. 比較兩個字符串,如日期
- 22. 如何比較字符串形式的時間/日期?
- 23. 在Lotusscript中比較兩個字符串字段的格式爲HH:MM AM/PM
- 24. 比較日期和時間字符串格式
- 25. 比較2字符串格式的SID
- 26. 如何比較我sql中timestamp字段的時間(hh:mm:ss)?
- 27. 如何比較字符串中的兩個字符?
- 28. 如何比較時間字符串的時間部分?
- 29. C++比較兩個字符串文字
- 30. 比較兩個數字字符串值
的可能重複[對比在javascript時間(http://stackoverflow.com/questions/3316281/compare-time-in-javascript) – lonesomeday 2011-06-02 08:47:40
難道24H?然後你可以做簡單的字符串比較。順便說一句,'5:10:10'不是'HH:MM ...',它只是'H:MM:...'。但是對於字符串比較,兩者都必須採用相同的格式。 – 2011-06-02 08:47:52