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)
所以事实证明,问题在于 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)
| 归档时间: |
|
| 查看次数: |
810 次 |
| 最近记录: |