21

Rubyで現在の日付と月を特定の形式で取得するにはどうすればよいですか?

今日が 2012 年 6 月 8 日の場合、取得したいのは です201206

また、 201212で次の月が201301になることを考慮して、現在の月から次の月を取得できるようにしたいと思います。

4

6 に答える 6

37

私は次のようにします:

require 'date'
Date.today.strftime("%Y%m")
#=> "201206"
(Date.today>>1).strftime("%Y%m")
#=> "201207"

Date#>>の利点は、特定のことを自動的に処理することです。

Date.new(2012,12,12)>>1
#=> #<Date: 2013-01-12 ((2456305j,0s,0n),+0s,2299161j)>
于 2012-06-08T22:31:30.827 に答える
16

今月:

date = Time.now.strftime("%Y%m")

来月:

if Time.now.month == 12
  date = Time.now.year.next.to_s + "01"
else
  date = Time.now.strftime("%Y%m").to_i + 1
end
于 2012-06-08T21:35:48.197 に答える
7

Ruby 2 以降、「next_month」は Date のメソッドです。

require "Date"

Date.today.strftime("%Y%m")
# => "201407"

Date.today.next_month.strftime("%Y%m")
# => "201408"
于 2014-07-11T22:16:49.287 に答える
5
require 'date'
d=Date.today                    #current date
d.strftime("%Y%m")              #current date in format
d.next_month.strftime("%Y%m")   #next month in format
于 2014-09-04T10:52:35.433 に答える
1

そのようなものにはhttp://strfti.me/を使用してください

strftime "%Y%m"
于 2012-06-08T21:36:53.253 に答える
0

Ruby 2 Plus と Rails 4 Plus。

以下の関数を使用すると、必要な結果を見つけることができます。

Time.now #current time according to server timezone
Date.today.strftime("%Y%m") # => "201803"

Date.today.next_month.strftime("%Y%m") # => "201804"
于 2018-03-15T11:43:20.833 に答える