给定
var fromDatetime =“10/21/2014 08:00:00”;
var toDatetime =“2014/10/21 07:59:59”;

目标
需要比较这两个给定的日期时间,以检查这是否是有效的日期时间输入。

我认为我可以使用此解决方案。 。
var fromDatetime =新日期(“10/21/2014 08:00:00”);
var toDatetime =新日期(“10/21/2014 07:59:59”);

然后比较每个细分
从Datetime.getFullYear()到toDatetime.getFullYear(),
从Datetime.getMonth()到toDatetime.getMonth(),
依此类推,直到获得非相等比较,然后返回。

我的问题是。 。 在Javascript中比较日期时间是最好的情况吗?

除此以外的任何建议解决方案将不胜感激。 。
先感谢您。

最佳答案

如果您只需要知道一个日期是在另一个日期之前还是之后,则可以使用普通的比较运算符:

if (dateA > dateB) { ... }

(请注意,要实例化Date对象,它是new Date(myDateString),而不是示例中的new date()。)

之所以可行,是因为Date对象将被强制转换为基础的纪元值,这些纪元值只是代表自GMT 1970年1月1日起经过的毫秒数的数字。 (关系比较使用操作数的@@toPrimitivevalueOf()函数的结果(如果有)。因此,这将敏感到毫秒,这可能是或可能不需要的。您可以通过确保输入仅包含时/分/小时以下的值来控制比较的粒度,或者通过像问题中所述的零碎比较来控制比较的粒度。

对于更高级的日期比较操作,我强烈建议使用Moment.js之类的库,因为本来就没有太多要使用的库。例如Moment提供了类似的方法
moment(myDateString).startOf('hour')

如果您只需要在特定的特定水平上进行比较,这将非常有帮助。但是没有一个datetime库非常轻巧,因此仅在执行服务器端代码或希望广泛依赖它们时才使用它们。如果您只需要进行这一比较,则最好采用自己的解决方案。

关于javascript - 如何在Javascript中比较日期时间?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26477875/

10-11 23:51
查看更多