我正在使用Ruby on Rails构建一个待办事项列表应用程序,我的Task
资源中的每个项目都有deadline
属性,该属性是使用gem 'datetimepicker'
创建的。
此'datetimepicker'
gem将日期作为string
数据类型提取,格式为"12/13/2012"
,"%m/%d/%Y"
。
我正在尝试按task
属性中的日值对deadline
元素进行分组。我发现了一篇关于如何做到这一点的文章(虽然我认为它包含一个拼写错误):
https://ariejan.net/2007/01/12/rails-group-results-by-week-using-group_by/
但是,我宁愿在tasks_controller
而不是task
模型中完成工作(可能模型是更清洁的方式吗?我是一个小小的,并且愿意接受建议这一点)。
我发现了另一篇关于group_by
方法的文章,该文章展示了一个近似的过程:
http://railscasts.com/episodes/29-group-by-month?view=asciicast
这篇文章看起来对我来说有点清洁。它要求我使用.beginng_of_day
方法同等地处理task
中具有相同日期值的所有deadline
项。
我遇到了两种方法的问题,即他们将deadline
视为datetime
数据类型。我想使用.to_datetime
方法转换task.deadline
,但'datetimepicker'
gem以deadline
错误的方式格式化string
.to_datetime
转换它:
" 12/13/2012" .to_datetime#=> ArgumentError:无效日期
see => apidock [点] com [斜线]导轨[斜线]字符串[斜线] to_datetime
我发现了一篇类似的文章,建议使用deadline
和.strptime
方法重新格式化.strftime
属性,但我不知道该怎么做这是deadline
是string
而不是datetime
:
see =>计算器[点] com [斜线]问题如何到转换-日期时间选取器值到日期时间合红宝石上导轨[斜线] 16296885 [斜线]
有人可以帮助我进行此转换,或者建议在白天对任务进行分组的不同(最好更简单!)策略吗?
感谢您的帮助,并为破损的链接道歉;我还没有足够的声誉点来嵌入超过2个。
答案 0 :(得分:1)
你真的不想约会吗?不是约会时间?
无论如何,你可以使用
Date.strptime("12/13/2012", "%m/%d/%Y")
=> #<Date: 2012-12-13 ((2456275j,0s,0n),+0s,2299161j)>
DateTime.strptime("12/13/2012", "%m/%d/%Y")
=> #<DateTime: 2012-12-13T00:00:00+00:00 ((2456275j,0s,0n),+0s,2299161j)>