【发布时间】:2014-04-17 02:35:01
【问题描述】:
如何将 ruby 时间转换为 javascript 时间,反之亦然?
Ruby on rails:
Time.now
Javascript:
new Date()
【问题讨论】:
标签: javascript ruby-on-rails ruby
如何将 ruby 时间转换为 javascript 时间,反之亦然?
Ruby on rails:
Time.now
Javascript:
new Date()
【问题讨论】:
标签: javascript ruby-on-rails ruby
两者中的这些方法是等效的,请使用:
对于红宝石:
Time.now.httpdate
对于 Javascript:
new Date().toUTCString()
两者的输出:
Tue, 04 Jul 2017 14:18:31 GMT
【讨论】:
也许最可靠的方法是对 ruby 使用纪元以来的秒数,对 JavaScript 使用毫秒数。
在红宝石中:
t = Time.now
# => 2014-03-12 11:18:29 -0700
t.to_f * 1000 # convert to milliseconds since 1970-01-01 00:00:00 UTC.
# => 1394648309130.185
这个值可以直接给JavaScriptDate构造函数:
var d = new Date(1394648309130.185)
d // Wed Mar 12 2014 11:18:29 GMT-0700 (Pacific Daylight Time)
d.getTime() // 1394648309130 (Fractions of a millisecond are dropped)
d.getTime()除以1000的输出可以给ruby的Time.at():
Time.at( 1394648309130 / 1000.0 )
# => 2014-03-12 11:18:29 -0700
【讨论】:
我想它会帮助你:
ruby 日期到 javascript 日期的转换:
<script>
var date_str = <% Date.today %>;
var date_obj = new Date(date_str);
</script>
javascript 日期到 ruby 日期转换:
在 ruby 类中使用此代码。
从参数属性中获取日期。
date_str = params[:js_date]
date_obj = Date.parse(date_str)
更多信息您可以参考:
http://www.ruby-doc.org/stdlib-1.9.3/libdoc/date/rdoc/DateTime.html
http://www.w3schools.com/jsref/jsref_parse.asp
【讨论】:
使用 strftime 获取毫秒数:
<script>
date = new Date(<%= DateTime.now.strftime '%Q' %>);
</script>
并使用 to_date 解析回 Ruby:
params[:date].to_date
to_date 接受几种格式:
'3-2-2001'
'03/02/2001'
'2001-02-03'
'3rd Feb 2001'
'20010203'
【讨论】:
从 jquery 到 rails:
"Wed Mar 12 2014 23:45:39 GMT+0530 (IST)".to_time
【讨论】: