用格式'hh:mm t'比较javascript中的两个时间
Compare two time in javascript in format 'hh:mm tt'
我想比较两次
所以我尝试了这些:
"01:03 AM" > "01:02 AM"
> true
"01:01 AM" > "01:02 AM"
> false
在这些情况下,结果是正确的,但在这个情况下不是:
"12:55 AM" > "03:55 AM"
> true
我如何在这种格式"hh:mm tt"
中以适当的精度比较两个时间?有必要把日期和时间写在一起,然后比较日期和时间吗?
Update:由于safari不支持空格分隔日期,因此使用斜杠代替空格适用于所有浏览器。
您需要首先将时间转换为日期对象,然后转换为时间戳。然后可以比较时间戳。您可以遵循以下基本示例:
var t = new Date();
d = t.getDate();
m = t.getMonth() + 1;
y = t.getFullYear();
//Convert time into date object
var d1 = new Date(m + "/" + d + "/" + y + " " + "12:55 AM");
var d2 = new Date(m + "/" + d + "/" + y + " " + "03:55 AM");
//Get timestamp
var t1 = d1.getTime();
var t2 = d2.getTime();
t1 > t2 ? alert("t1 greater than t2") : alert("t2 greater than t1");
但是对于复杂的时间比较,你应该使用插件
将时间转换为分钟并比较
function toMin(str) {
var match = str.match(/('d+):('d+)'s(AM|PM)/)
var min = (+match[1] > 11 ? 0 : match[1] * 60) + +match[2];
if (match[3].toLowerCase() == 'pm') {
min += 720;
}
return min;
}
function gt(v1, v2) {
snippet.log(v1 + ' > ' + v2 + ': ' + (toMin(v1) > toMin(v2)))
}
function lt(v1, v2) {
snippet.log(v1 + ' < ' + v2 + ': ' + (toMin(v1) < toMin(v2)))
}
//then
gt('12:30 AM', '01:00 AM');
lt('12:30 AM', '01:00 AM');
<!-- Provides the `snippet` object, see http://meta.stackexchange.com/a/242144/134069 -->
<script src="http://tjcrowder.github.io/simple-snippets-console/snippet.js"></script>
相关文章:
- 用每小时的差值填充数组/列表-从下拉列表中给定两个时间值
- Javascript-如何使用bootstrap日期时间选择器自动计算两个时间输入之间的差异
- 比较两个时间戳天数
- 用户如何获取两个时间戳之间的对象
- 如何比较两个时间戳的值
- 比较D3.js中的两个时间对象
- 如何在 24 小时制下计算两个时间之间的时差
- 两个时间对象之间的差异
- 如何计算 24 小时格式的两个时间之间的差异
- 在javascript中找到差异btw两个时间输入
- 在 JavaScript 中获取两个时间之间的时差
- 如何获得两个时间戳的差异
- 在 JavaScript 中以 AM/PM 格式的两个时间之间的差异
- JavaScript比较两个时间变量
- 以分钟为单位计算两个时间之间的差异
- 比较if语句中的两个时间值
- 使用javascript计算两个时间戳之间的差异
- 在javascript中,我如何比较两个时间戳,看看他们有多少天的差异
- 用格式'hh:mm t'比较javascript中的两个时间
- 使用js的两个时间选择器的时间差