给定
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日起经过的毫秒数的数字。(关系比较使用操作数@@toPrimitive
或valueOf()
函数的结果(如果可用)。)因此,这将敏感到毫秒,这可能是必需的,也可能是不希望的。您可以通过确保输入仅包含时/分/小时以下的值来控制比较的粒度,或者通过像问题中所述的零碎比较来控制比较的粒度。
对于更高级的日期比较操作,我强烈建议使用Moment.js之类的库,因为本来就没有太多要使用的库。例如Moment提供了类似的方法
moment(myDateString).startOf('hour')
如果您只需要在特定的特定水平上进行比较,这将非常有帮助。但是没有一个datetime库非常轻巧,因此仅在执行服务器端代码或希望广泛依赖它们时才使用它们。如果您只需要进行这一比较,则最好采用自己的解决方案。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句