将jQuery日期与Rails日期进行比较

Jef*_*ros 9 javascript ruby jquery ruby-on-rails date

我有一个rails生成的日期,以及一个jQuery生成的日期.

rails日期打印如下: 2002-10-27

并且jQuery日期打印如下: Tue Aug 14 2001 00:00:00 GMT-0500 (CDT)

我想检查jQuery日期是否大于或小于rails日期.但无论日期如何,jQuery日期总是被解释为大于rails日期.

为什么会这样,我怎样才能成功比较这两个日期?

var year = 2001
var month = 9
month --
var day = 14
var date = new Date(year, month, day);
<% @date = Date.today - 18.years %>
if( date > <%= @date %> ) {
  //this code is always executed, no matter what dates I choose
}
Run Code Online (Sandbox Code Playgroud)

更新:

实际上我只是弄清楚问题是它只允许1969年之前的日期.我打算让代码只允许18岁以上的日期.有谁知道为什么会有区别?

更新2:

我在我的js控制台和rails控制台上测试了2000年10月5日的时间输出,并且它们给出了相同的前六位数,但是js控制台增加了三个零.

var year = 2000
var month = 10
month --
var day = 5
var date = new Date(year, month, day);
date.getTime();
=> 970722000000


Date.new(2000,10,5).to_time.to_i
=> 970722000 
Run Code Online (Sandbox Code Playgroud)

Jef*_*ros 4

所以事实证明,问题在于 js 控制台以毫秒为单位打印时间,这就是为什么我得到 973404000000,而不是在 Rails 控制台中得到 973404000。

我所要做的就是将 js 时间除以 1000,然后将 js 时间与 Rails 时间进行比较,效果非常好。

var year = 2000
var month = 10
month --
var day = 5
var date = (new Date(year, month, day).getTime() / 1000);
date
=> 970722000


Date.new(2000,10,5).to_time.to_i
=> 970722000 
Run Code Online (Sandbox Code Playgroud)