有关如何将日期输入值与最小/最大日期范围进行比较的建议

时间:2013-12-14 19:46:29

标签: javascript jquery date

我已经设置了一个接受出生日期的jQuery日期选择器,并希望使用所选日期输出特定类别,将输入日期与每个类别的最小和最大日期进行比较。目前我在实际比较日期时遇到了问题,希望能得到一些建议。我现在知道我的问题是因为我正在尝试比较一个字符串和一个字符串,但我想知道我应该将每个日期转换成类似于unix值来进行比较,还是有一些{{1我应该在每个Date()

上使用

JS

ageLimits

JSFiddle:http://jsfiddle.net/qA9NT/5/

3 个答案:

答案 0 :(得分:1)

使用Date个对象而不是字符串。

您可以使用

获取Date对象
dateInput._d

答案 1 :(得分:1)

我发现您已经在使用moment

您可以使用moment解析日期字符串,并使用toDate从当前实例获取本机日期对象。然后,您可以自然地比较原生Date个对象。

本机Date构造函数已经可以解析某些格式,因此您甚至可能不需要使用moment进行解析。

请注意,如果您对ageLimits对象进行硬编码,则可以立即构建日期对象,而不是存储字符串。

var date1 = moment("12-25-1995", "MM-DD-YYYY").toDate(),
    date2 = moment("12-25-1996", "MM-DD-YYYY").toDate();

if (date1 < date2) console.log('first date is smaller');

FIDDLE

答案 2 :(得分:1)

我不确定您的日期条件是什么,但如果它严格基于年份,您可以使用以下内容获取过去的确切日期:

var yearsAgo=10

var d=new Date();
d.setYear( d.getFullYear() - yearsAgo) ;

不需要对您的考试日期进行任何硬编码,并且始终从今天的日期开始计算

然后可以直接比较日期对象