Rails 将 datetimepicker 日期字符串转换为 datetime 数据类型
Rails convert datetimepicker date string to datetime data type
我正在 Rails 上使用 Ruby 构建待办事项列表应用程序,我的 Task
资源中的每个项目都有一个 deadline
属性,该属性是使用gem 'datetimepicker'
.
此 'datetimepicker'
gem 将日期作为 string
数据类型提取,格式为 "12/13/2012"
、"%m/%d/%Y"
.
我正在尝试按 deadline
属性中的日值对 task
元素进行分组。我找到了一篇关于如何执行此操作的文章(尽管我认为它包含一个错字):
https://ariejan.net/2007/01/12/rails-group-results-by-week-using-group_by/
但是,我宁愿在 tasks_controller
中进行工作,也不愿在 task
模型中进行工作(也许该模型是更简洁的方法?我是一个 nuby 并且乐于接受建议这个)。
我找到了另一篇关于 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: invalid date
see => apidock[dot]com[slash]rails[slash]String[slash]to_datetime
我找到了一篇类似的文章,建议使用 .strptime
和 .strftime
方法重新格式化 deadline
属性,但我不知道如何做到这一点deadline
是 string
而不是 datetime
:
see => Whosebug[dot]com[slash]questions[slash]16296885[slash]how-to-convert-datetime-picker-value-to-datetime-in- ruby-上-rails
有人可以帮助我进行这种转换,或者建议一种不同的(最好更简单!)按天对任务进行分组的策略吗?
感谢您的帮助,对于损坏的链接深表歉意;我没有足够的声望点来嵌入超过 2 个。
你真的不想约会吗?不是日期时间?
在任何情况下你都可以使用
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)>
我正在 Rails 上使用 Ruby 构建待办事项列表应用程序,我的 Task
资源中的每个项目都有一个 deadline
属性,该属性是使用gem 'datetimepicker'
.
此 'datetimepicker'
gem 将日期作为 string
数据类型提取,格式为 "12/13/2012"
、"%m/%d/%Y"
.
我正在尝试按 deadline
属性中的日值对 task
元素进行分组。我找到了一篇关于如何执行此操作的文章(尽管我认为它包含一个错字):
https://ariejan.net/2007/01/12/rails-group-results-by-week-using-group_by/
但是,我宁愿在 tasks_controller
中进行工作,也不愿在 task
模型中进行工作(也许该模型是更简洁的方法?我是一个 nuby 并且乐于接受建议这个)。
我找到了另一篇关于 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: invalid date
see => apidock[dot]com[slash]rails[slash]String[slash]to_datetime
我找到了一篇类似的文章,建议使用 .strptime
和 .strftime
方法重新格式化 deadline
属性,但我不知道如何做到这一点deadline
是 string
而不是 datetime
:
see => Whosebug[dot]com[slash]questions[slash]16296885[slash]how-to-convert-datetime-picker-value-to-datetime-in- ruby-上-rails
有人可以帮助我进行这种转换,或者建议一种不同的(最好更简单!)按天对任务进行分组的策略吗?
感谢您的帮助,对于损坏的链接深表歉意;我没有足够的声望点来嵌入超过 2 个。
你真的不想约会吗?不是日期时间?
在任何情况下你都可以使用
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)>