Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Javascript中比较datetime?_Javascript_Datetime_Comparison - Fatal编程技术网

如何在Javascript中比较datetime?

如何在Javascript中比较datetime?,javascript,datetime,comparison,Javascript,Datetime,Comparison,给定的 var fromDatetime=“10/21/2014 08:00:00” var toDatetime=“10/21/2014 07:59:59” 目标 需要比较这两个给定的datetime以检查这是否是有效的datetime输入 我想我可以用这个解决方案 var fromDatetime=新日期(“2014年10月21日08:00:00”) var toDatetime=新日期(“10/21/2014 07:59:59”) 然后比较每个片段 从DateTime.getFullYea

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

目标
需要比较这两个给定的datetime以检查这是否是有效的datetime输入

我想我可以用这个解决方案
var fromDatetime=新日期(“2014年10月21日08:00:00”)
var toDatetime=新日期(“10/21/2014 07:59:59”)

然后比较每个片段
从DateTime.getFullYear()到toDatetime.getFullYear(),
从DateTime.getMonth()到toDatetime.getMonth(),
依此类推,直到得到一个不相等的比较,然后返回

我的问题是这是比较Javascript中日期时间的最佳情况吗?

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

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

if (dateA > dateB) { ... }
(请注意,要实例化日期对象,它是
newdate(myDateString)
,而不是示例中的
newdate()

这是因为日期对象将被强制为基础历元值,这些值只是表示自1970年1月1日格林尼治标准时间以来已过的毫秒数的数字。(关系比较使用操作数的
@@toPrimitive
valueOf()
函数(如果可用)的结果。),这将是敏感到毫秒,这可能是或可能不是理想的。您可以通过确保输入仅包括小时/分钟/任意值,或者通过执行问题中描述的逐段比较来控制比较的粒度

对于更高级的日期比较操作,我强烈建议使用像Moment.js这样的库,因为本机没有太多可处理的内容。例如,矩提供了如下方法

moment(myDateString).startOf('hour')

如果您只需要在特定的特异性水平上进行比较,这将非常有用。但是没有一个datetime库是非常轻量级的,所以只有在您正在编写服务器端代码或者希望广泛依赖它们时才使用它们。如果你只需要做这一个比较,那么更明智的做法是推出你自己的解决方案。

比较所要确定的内容对回答你的问题很重要。你只需要知道日期是否不同吗?如果一个比另一个早?你需要考虑时区吗?可能的复制品?将日期与JavaScript进行比较我需要知道日期是否不同,同时,最好是这样做。关于时区,这不是必需的,但是让我们假设givens在同一时区设置上。非常感谢先生。