转换和比较字符串中表示的时间

时间:2015-05-27 13:38:21

标签: javascript jquery

24小时格式HH接受时间:mm

我想在以下条件下比较两个时间范围:

a) T1 > T2 
b) T2 not in-between time range of T1 
c) The T1 & T2 do not overlap

那里有没有图书馆,还是我应该满足所有可能的组合并创建我自己的剧本?

3 个答案:

答案 0 :(得分:1)

很少。查看these dateTime库

答案 1 :(得分:1)

您的选择是:

  1. 图书馆,例如momentJS

  2. Convert将字符串转换为标准的javascript Date-Time并比较这些对象而不是字符串。你需要一个假日期。

  3. 自行滚动,手动覆盖所有可能性。

  4. 如果您打算一次又一次地在两个阵列之间进行比较(即您的JSON没有采用不同的格式,并且您的代码需要更多模块化),我认为您应该自己动手。使用子函数编写validation函数,并返回func1 && func1 && func3

    同样,所有这些都有3个学位,特别是如果你必须学习一个新的图书馆,我就会学到这一点。对于有限的h:m比较,它有可能成为最快和最高效的,特别是当你使用JavaScript变得更好时。

答案 2 :(得分:1)

如果可以,我总是更喜欢手动方法,然后您可以完全控制加载到页面中的内容。

我建议比较getTime()' s,如下:

var Now = new Date(),
    T1 = {},
    T2 = {};
T1.Start = new Date(Now.getFullYear(), Now.getMonth(), Now.getDate(), 8, 30); // 8:30am
T1.End = new Date(Now.getFullYear(), Now.getMonth(), Now.getDate(), 12, 30); // 12:30pm
T2.Start = new Date(Now.getFullYear(), Now.getMonth(), Now.getDate(), 13, 0); // 1:00pm
T2.End = new Date(Now.getFullYear(), Now.getMonth(), Now.getDate(), 17, 30); // 5:30pm
T1.Length = T1.End.getTime() - T1.Start.getTime()
T2.Length = T2.End.getTime() - T2.Start.getTime()

if (T1.Length > T2.Length) { // Longer than

} else if (T2.Start > T1.Start && T2.End < T1.End) { // Inbetween

} else if (T2.Start < T1.End || T2.End > T1.Start) { // Overlapping

}