0

我在这里看到了一些关于查找使用两个不同日期之间差异的不同问题。

我的问题类似于Parse ONLY a time string with DateJS

我基本上有2个时间输入:

<input id="start_time" type="text"> <input id="end_time" type="text">

这些格式将始终为:07:15 AM08:30 AM

本质上,我要做的是确保start_time不大于end_time.

我曾尝试使用 DateJS 来解析日期,但它返回null

Date.parseExact("03:15 PM", "HH:mm");    <--- returns null

我应该如何比较两个输入字段(使用 DateJS 或其他)以确保 start_time 不大于 end_time?

任何帮助都会很棒。

4

4 回答 4

4

您需要将 AM/PM 字段添加到您用于解析的格式中。尝试使用

HH:mm tt

代替

HH:mm
于 2013-04-16T14:44:00.203 回答
1

没有完全回答这个问题,但 DateJS 看起来有点过时了。我建议您查看Moment.js,您可以在其中执行此操作:

moment("03:15 PM", "hh:mm A").isAfter(moment("03:05 PM", "hh:mm A"));
// false
于 2013-04-16T14:52:17.207 回答
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

希望这可以帮助

于 2013-04-16T22:04:38.673 回答
0

为什么不使用 toString?

var g = new Date("2012-01-11 03:15 PM");
console.log(g.toString('HH:mm'));

只需添加一个虚构的日期以获得有效的日期字符串格式。因为我猜你只需要时间而不是日期

它对我很好。

于 2013-04-16T15:04:06.543 回答