2024-06-23 11:19AM
参考:https://stackoverflow.com/a/4495765/25407982
我想获取“开始日期”和“结束日期”这两个日期之间所有的日期,TimeWithZone
对象包含年、月、日、时间部分(时、分、秒)等日期信息。
它可以将 Time
, DateTime
或 TimeWithZone
对象转换为 Date
对象,转换后,只保留日期部分,时间部分被忽略。
可以使用 to_date 这个方法:
start_date = date start.to_date
end_date = date end.to_date
(start..end).to_a
eg:
先测试一下这个方法是否可以正常使用:$ bundle exec rails c
irb(main):009:0> Article.last.created_at
Article Load (0.3ms) SELECT `articles`.* FROM `articles` ORDER BY `articles`.`id` DESC LIMIT 1
=> Sun, 23 Jun 2024 11:07:00 CST +08:00
irb(main):008:0> Article.last.created_at.to_date
Article Load (0.5ms) SELECT `articles`.* FROM `articles` ORDER BY `articles`.`id` DESC LIMIT 1
=> Sun, 23 Jun 2024
代码示例:
CsvRecord.all.each do |row|
start_date = row.entered_at.to_date
end_date = Date.leaved_at.to_date
(start_date .. end_date).each do |date|
puts date
end
end
登录
请登录后再发表评论。
评论列表:
目前还没有人发表评论