Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Changing Date and Time of Heroku(ruby on rails) Server

I am having ruby on rails application which is hosted on Heroku. For testing purpose I have to change Date and Time of the server. Or set it manually to particular date..? Is there any way I can do that..? Using console or anything.?

like image 501
dArK kNiGhT Avatar asked Feb 24 '17 10:02

dArK kNiGhT


3 Answers

I achieved this with the Timecop gem using an around_action to change the time in my staging environment.

module TimeTravelFilters
  extend ActiveSupport::Concern

  included do
    if Time::Clock.travel_ok?
      around_action :time_travel_for_request
    end
  end

  def time_travel_for_request
    time_travel
    yield
    time_travel_return
  end

  def time_travel
    if Time::Clock.fake_time
      Timecop.travel Time::Clock.fake_time
    else
      Timecop.return
    end
  end

  def time_travel_return
    Timecop.return
  end
end

Time::Clock is my own class that keeps track of the fake time.

I have a separate TimeController that lets me change the time on the server.

class TimeController < ApplicationController
  before_action :require_admin!

  def index
  end

  def update
    @clock.update_attributes params[:time_clock]
    redirect_to time_index_path
  end

  def destroy
    @clock.reset
    redirect_to time_index_path
  end
end
like image 54
Kevin Lawrence Avatar answered Nov 19 '22 10:11

Kevin Lawrence


You cant change the date time but you can change the timezone

heroku config:add TZ="America/Los_Angeles"

http://blog.pardner.com/2012/08/setting-the-default-time-zone-for-a-heroku-app/

like image 43
Keval Gohil Avatar answered Nov 19 '22 10:11

Keval Gohil


For Rails apps running on Heroku, by default Time.now and some_time.localtime will display in UTC. If you'd like to assign a timezone to your app, you can set the TZ config variable to a time zone (which must be in the tz database timezone format).

heroku config:add TZ="America/Los_Angeles"
like image 28
puneet18 Avatar answered Nov 19 '22 12:11

puneet18