在红宝石中减去时间的分钟数

时间:2012-02-23 02:18:46

标签: ruby-on-rails ruby ruby-on-rails-3

我有一个日期时间格式的字符串“02/22/12 01:04”(24小时时间格式)我需要从中减去6分钟。 (比如每次使用循环减去1分钟)并将它存储在阵列中所有6个不同的时间。我需要在ruby 1.8.7中执行此操作。请你帮助我好吗?

2 个答案:

答案 0 :(得分:2)

在rails中,你可以这样做,虽然我不确定哪个Gem in rails允许你:

# to get 2012, use "02/22/2012"
# note this gives you the year 0012, not 2012.

my_date = "02/22/12 01:04".to_time
my_date_array = []
6.times do
  my_date -= 1.minute
  my_date_array.push(my_date.strftime("%D/%m/%Y %I:%M"))
end

我从您列出的标签中假设您需要在Rails中执行此操作。使用Ruby 1.8.7在Rails 3+中工作。

答案 1 :(得分:1)

在ruby 1.8.7中,这是一个非常令人敬畏的工作:

require 'time'
require 'date'

6.times.map { |i| Time.parse(DateTime.strptime("02/22/12 01:04", "%m/%d/%y %H:%M").to_s) - i * 60}
# => [Wed Feb 22 02:04:00 +0100 2012, Wed Feb 22 02:03:00 +0100 2012, Wed Feb 22 02:02:00 +0100 2012, Wed Feb 22 02:01:00 +0100 2012, Wed Feb 22 02:00:00 +0100 2012, Wed Feb 22 01:59:00 +0100 2012]