比较jQuery日期和Rails日期
Comparing jQuery date to Rails date
我有一个rails生成的日期和一个jQuery生成的日期。
轨道日期打印如下: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
}
更新:
事实上,我刚刚发现问题是它只允许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
所以问题是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
用户日期Jquery date的格式模式,用于根据ruby日期更改日期格式,或者第二个选项是根据Jquery使用strftime转换ruby日期格式。
您可以尝试将它们转换为各自的unix时间戳并进行比较。如果你不在乎时间,只在乎日期,那就行了。
var year = 2001
var month = 9
var day = 14
var date = new Date(year, month, day);
<% @date = Date.today - 18.years %>
if ( date.getTime() > <%= @date.to_time.to_i %>) {
// do something
}
我会使用Moment.JS这样的库来处理客户端的日期解析需求。然后以ISO8601等标准格式向服务器发送一些内容,以确保您在错误报告中不会遇到任何问题。
Epoch时间也会起作用,但正如你所看到的,你必须承担确保他们在同一个单位的责任。
要为我比较两个日期,你可以使用moment.js
用你的铁轨日期创建一个即时日期。对您的jquery日期执行同样的操作。
你现在可以很容易地比较这两个日期了。
如果你需要帮助,请看这篇文章:moment js日期时间比较
- Ruby on rails - 将引导日期选择器值转换为 Ruby 时间值
- 如何将Rails%d/%m/%Y日期格式字符串转换为dd/mm/yyyy
- rails应用程序中日期范围选择器的国际化
- 是什么原因导致使用jquery无法在rails 3.1.3中加载日期选择器
- 将日期数组保存到rails中的数据库中,每个日期保存到表中的不同行
- 在Angular控制器中将rails日期时间更改为字符串
- Angular Rails:不删除未来日期的自定义过滤器
- 比较jQuery日期和Rails日期
- Rails日期拾取器ActiveRecord查找不起作用
- 为什么我的索引视图不工作时,我在我的rails应用程序实现日期picker
- 使用jQueryUI Datepicker基于特定日期请求Rails视图
- 如何在rails的部分中更新jquery日期picker
- 在ruby on rails中启用日期时间选择
- 选择日期范围后更新视图(Rails, Javascript)
- id为'日期选择器'被模型字段'due_date'在rails表单中使用日期选择器时
- 日历日期选择错误Ruby 1.9.3 Rails 3.1
- rails日期时间选择的jQuery客户端验证
- Bootstrap3 datetimepicker日期格式rails
- Rails和jquery日期时间选择器
- Rails 4日期时间选择器和茧宝石