web-dev-qa-db-fra.com

Obtenez l'année et le mois en cours (et le mois prochain) dans ce format AAAAMM en Rubis

Comment puis-je obtenir la date et le mois actuels en Ruby dans un format spécifique?

Si nous sommes aujourd'hui le 8 juin 2012, je souhaite obtenir 201206.

Et aussi, je voudrais pouvoir obtenir le mois prochain de celui dans lequel nous sommes, en tenant compte du fait que dans 201212 , le mois prochain serait 201301 .

17
Hommer Smith

Je le ferais comme ça:

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

L’avantage de Date # >> est qu’il s’occupe automatiquement de certaines choses:

Date.new(2012,12,12)>>1
#=> #<Date: 2013-01-12 ((2456305j,0s,0n),+0s,2299161j)>
32
Michael Kohl

Mois en cours:

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

Le mois prochain:

if Time.now.month == 12
  date = Time.now.year.next.to_s + "01"
else
  date = Time.now.strftime("%Y%m").to_i + 1
end
15
Josh

A partir de Ruby 2, "next_month" est une méthode sur Date:

require "Date"

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

Date.today.next_month.strftime("%Y%m")
# => "201408"
7
Amin Ariana
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
3
Mahattam

utilisez http://strfti.me/ pour ce genre de choses

strftime "%Y%m"
1
three

Ruby 2 Plus et Rails 4 plus.

En utilisant les fonctions ci-dessous, vous pouvez trouver les résultats requis.

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

Date.today.next_month.strftime("%Y%m") # => "201804"
0
Wasim