9

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

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

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

然后比较每个片段
从Datetime.getFullYear()到Datetime.getFullYear(),
from Datetime.getMonth()to日期时间.getMonch(),
以此类推,直到我得到一个不相等的比较,然后返回。

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

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

  • 在回答您的问题时,比较试图确定的内容至关重要。你只需要知道日期是否不同吗?如果一个早于另一个?你需要考虑时区吗?
    – 分号
    评论 2014年10月21日2:18
  • 可能重复?使用JavaScript比较日期stackoverflow.com/questions/492994/…
    – 用户4164128
    评论 2014年10月21日2:19
  • 我需要知道日期是否不同,同时,最好是这样做的。关于时区,这不是必需的,但让我们假设给定值位于相同的时区设置上。
    – 萨塔
    评论 2014年10月21日2:20

1答案1

重置为默认值
13

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

if(日期A>日期B){…}

(请注意,要实例化Date对象,需要新日期(myDateString),不是新日期()如您的示例所示。)

这是因为Date对象将被强制为基本的epoch值,这些值只是表示自1970年1月1日GMT以来经过的毫秒数的数字。(关系比较使用操作数的结果@@到基本体值()功能(如果可用)。)因此,这将敏感到毫秒,可能需要也可能不需要。您可以控制比较的粒度,方法是确保输入仅包含最长为小时/分钟的值,或者像您在问题中描述的那样进行逐段比较。

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

力矩(myDateString).startOf('hour')

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

0

您的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.