我在这里看到了一些关于找到使用两个不同日期之间差异的不同问题。
我的问题类似于Parse ONLY a time string with DateJS。
我基本上有2次输入:
<input id="start_time" type="text">
<input id="end_time" type="text">
这些格式始终为:07:15 AM
或08:30 AM
基本上,我要做的是确保start_time
不大于end_time
。
我尝试使用DateJS来解析日期,但它返回null
:
Date.parseExact("03:15 PM", "HH:mm"); <--- returns null
我应该如何比较两个输入字段(使用DateJS或其他字段)以确保start_time不大于end_time?
任何帮助都会很棒。
答案 0 :(得分:4)
您需要将AM / PM字段添加到您用于解析的格式。尝试使用
HH:mm tt
而不是
HH:mm
答案 1 :(得分:1)
不完全回答这个问题,但DateJS看起来有点过时了。我建议你看看Moment.js,你可以在那里做到这一点:
moment("03:15 PM", "hh:mm A").isAfter(moment("03:05 PM", "hh:mm A"));
// false
答案 2 :(得分:0)
为什么不使用toString?
var g = new Date("2012-01-11 03:15 PM");
console.log(g.toString('HH:mm'));
只需添加一个虚构日期即可获得有效的日期字符串格式。 因为我猜你只需要时间而不是日期
它对我很好。
答案 3 :(得分:0)
您可以将Date.parseExact
与@matthewtole提供的格式修订一起使用,或者您也应该只使用'Date.parse'。
Date.parseExact
将提供更好的性能,但如果您只是解析两个值,那么Date.parseExact
的性能提升可能不会产生太大的影响。
您还可以使用.isBefore()
功能检查一个日期是否出现在另一个日期之前。
示例强>
var d1 = Date.parse("07:15 AM");
var d2 = Date.parse("08:30 AM");
d1.isBefore(d2); // true
希望这有帮助