Подтвердить что ты не робот

Преобразование времени между рубинами на рельсах и javascript наоборот?

Как преобразовать время рубинов в javascript и наоборот.

Рубины на рельсах:

 Time.now

Javascript:

 new Date()
4b9b3361

Ответ 1

Возможно, самый надежный способ - использовать секунды с эпохи для 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

Это значение может быть напрямую передано конструктору JavaScript Date:

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, может быть присвоен рубину Time.at():

Time.at( 1394648309130 / 1000.0 )
# => 2014-03-12 11:18:29 -0700

Ответ 2

От jquery до рельсов:

"Wed Mar 12 2014 23:45:39 GMT+0530 (IST)".to_time

Ответ 3

Я думаю, это поможет вам:

дата ruby ​​для преобразования даты в javascript:

<script>
  var date_str = <% Date.today %>;
  var date_obj = new Date(date_str);
</script>

дата javascript для преобразования даты ruby:

используйте этот код в классе ruby.

введите дату из атрибутов params.

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

Ответ 4

Эти методы в обоих эквивалентны, используйте либо:

Для Ruby:

Time.now.httpdate

Для Javascript:

new Date().toUTCString()

Вывод для обоих:

Tue, 04 Jul 2017 14:18:31 GMT

Ответ 5

Используйте strftime для получения miliseconds:

<script>
  date = new Date(<%= DateTime.now.strftime '%Q' %>);
</script>

И проанализируйте его до Ruby, используя to_date:

params[:date].to_date

to_date принимает несколько форматов:

'3-2-2001'
'03/02/2001'
'2001-02-03'
'3rd Feb 2001'
'20010203'