如何在Javascript中比较日期时间?

佐田

给定
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”);

然后将每个段
fromDatetime.getFullYear()与toDatetime.getFullYear(),
fromDatetime.getMonth()与toDatetime.getMonth()
进行比较,依此类推,直到获得非相等的比较,然后返回。

我的问题是。那是比较Javascript中的日期时间的最佳案例吗?

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

分号

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

if (dateA > dateB) { ... }

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

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

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

moment(myDateString).startOf('hour')

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章