2016-10-14 2 views
1

У меня есть хэш, как это: value = {Fri, 14 Oct 2016=>58.0}Возврат Hash Дата Значение

Как вернуть значение на дату, которая является 58.0?

Немного помощи от docs.

Попробовали value["#{DateTime.now}"], но это возвращает 0.

+1

Ваша первая строка недействительна. Синтаксис Ruby. Каков ключ? Строка или объект даты? – GolfWolf

+0

Привет. Нах, это был просто хэш, как в посте. Ключ - это дата, а число - значение. – Sylar

ответ

1

Если этот ключ является объектом даты попробовать

value[Date.new(2016, 10, 14)] 
+0

Хотя это работает, но не является гибким. Могу ли я иметь что-то вроде 'Date.new (DateTime.now)'? – Sylar

+0

@Sylar use Date.today – user3033467

+0

@Sylar или 'DateTime.now.to_date' – GolfWolf

1

Если ваш ключ является DateTime объект, который вы должны сделать value[date_object]. Итак, если вы создали свой хэш, как:

key = DateTime.now 
value = {key=>58.0} 

Вы должны обращаться к нему как: value[key]

Если вы знаете строковое представление этого DateTime объекта, вы всегда можете преобразовать его в DateTime с помощью strptime method

Смежные вопросы