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

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

si aujourd'hui c'est le 8 juin 2012, je veux obtenir 201206.

Et aussi, je voudrais être en mesure d'obtenir le prochain mois à compter de celui où nous sommes, en tenant compte du fait que dans 201212, le mois prochain, serait 201301.

17
demandé sur Hommer Smith 2012-06-09 01:28:03

6 réponses

je le ferais comme ceci:

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

L'avantage de Date#>> est qu'il prend automatiquement soin de certaines choses pour vous:

Date.new(2012,12,12)>>1
#=> #<Date: 2013-01-12 ((2456305j,0s,0n),+0s,2299161j)>
32
répondu Michael Kohl 2012-06-08 22:31:30

mois courant:

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
répondu Josh 2012-06-08 22:02:27

à partir de Ruby 2, "next_month" est une méthode à la Date:

require "Date"

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

Date.today.next_month.strftime("%Y%m")
# => "201408"
7
répondu Amin Ariana 2014-07-11 22:16:49
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
répondu Mahattam 2014-09-04 10:52:35

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

strftime "%Y%m"
1
répondu three 2012-06-08 21:36:53

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
répondu Wasim 2018-03-15 12:04:50