2015-09-11 1 views
3

Я принимаю время как строку от пользователя типа «10:00 утра» или, если необходимо, могу принять «2015-08-27 10:00 утра» от пользователь.Как преобразовать строку (время или дату) в метку времени и сохранить в mongodb

Необходимо использовать функцию рельсов Дата ("2015-08-27 10:00 утра") для преобразования строки в дату, а затем ее необходимо сохранить в db?

настоящее время я использую

  • рубин 2.2.2
  • рельсы 4.1.4
  • Mongoid 4.0.0
+0

Хотя это должно быть (и как хороший человек ответил вам) очень просто разобрать достоверно допустимую дату «строка» в значение метки времени, я бы все же настоятельно рекомендовал вам хранить в качестве [даты BSON] (http://docs.mongodb.org/master/reference/bson-types/ #date). Как указано в документации * "- это 64-разрядное целое число, которое представляет собой миллисекунды с эпохи Unix" *, что означает, что это внутренне будет занимать то же место для хранения, что и числовая метка времени, но имеет дополнительную рекомендацию о вводе как дата. Таким образом, ваш язык может также относиться к нему как к дате –

+0

@BlakesSeven, поэтому нужно передать ISODate() вместо Time.parse()? – chaitanya

ответ

7

Если у вас есть вход 2015-08-27 10:00am вы можете parse, как это:

time = Time.parse '2015-08-27 10:00am' 

Mongoid

В случае, если вы используете Mongoid, create your model и назначить его на соответствующее поле. Например:

user = User.create(username: 'dimakura', talk_time: time) 

рубин Driver

В случае, если вы используете Ruby Driver, используйте следующий код:

client = Mongo::Client.new([ '127.0.0.1:27017' ], :database => 'mydb') 
result = client[:users].insert_one({ username: 'dimakura', talk_time: time }) 
Смежные вопросы