I need to calculate the date 1 month from today in Ruby and convert it to a String
in the format:
yyyy-dd-mmThh:MM:ss (eg 2014-08-26T00:00:00)
I have tried: (DateTime.now - Date.today.prev_month).to_datetime.strftime("%FT%T")
but I get a method does not exist exception.
Try this:
require 'date'
d = Date.today.prev_month # or Date.today.next_month, depending what you want
=> #<Date: 2014-12-27 ((2457019j,0s,0n),+0s,2299161j)>
d.strftime("%FT%T")
=> "2014-12-27T00:00:00"
Try this:
2.0.0-p247 :004 > require 'date'
=> false
2.0.0-p247 :005 > Date.today.prev_month
=> #<Date: 2014-10-27 ((2456958j,0s,0n),+0s,2299161j)>
2.0.0-p247 :006 > Date.today.prev_month.to_s
=> "2014-10-27"
2.0.0-p247 :008 > Date.today.prev_month.strftime("%F%T")
=> "2014-10-2700:00:00"
2.0.0-p247 :009 >
Try this:
(DateTime.now - 1.month).strftime("%FT%T").to_s
PS: I am sure this works fine with rails. Please confirm if it works independently on ruby too?
UPDATE :
As pointed out on comment below, this will work only if you have activesupport
lib
You can write this, for simplicity:
1.month.ago.beginning_of_month.to_s
# Or
1.month.ago.end_of_month.to_s
如果您无法访问 ActiveSupport,甚至无法访问 Date 或 DateTime,那么您可以在 30 天前使用以下内容:
(Time.now - 60*60*24*30).strftime("%FT%T")
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.