【发布时间】:2017-09-05 20:17:19
【问题描述】:
我需要测试一个特定的日期数组以确保它们的格式正确,但是我不能使用“解析”,因为如果我这样做了,那么不正确的日期就会被整理出来。例如,如果我的日期不正确,月份为“13”,它会增加另一年并将月份设置为 1。
我的代码从 SQL 查询中提取日期:
table_birth_dates = self.class.connection.execute("SELECT birth_date FROM #{temp_table_name}").values.flatten
[
[0] "1980-30-54",
[1] "1980-30-54",
[2] "2020-09-10",
[3] "1890-10-30"
]
yr = 1900
year_test = table_birth_dates.select{|d| Date.parse(d).year < yr}
现在给我一个ArgumentError: invalid date。
我想过使用:
splitted_birth_date = table_birth_dates.first.split("-")
splitted_birth_date.first.to_i > 1900?
但如果我尝试遍历所有日期,我将无法通过拆分操作任何内容:
table_birth_dates.each do |birth_date|
birth_date.split("-")
end
我能用这个做什么?
【问题讨论】:
标签: ruby-on-rails ruby date