rails 的 ActiveSupport 有提供 Time 的擴充 method: use_zone ,利用 code block 機制即可實作。

Time.use_zone('Taipei') { Time.current }

如此便可利用 controller 的 around_action 來確保所有或部分的 action 內的預設時區

class ApplicationController
  around_action :set_current_user_timezone!, if: :user_signed_in?

  private
  
  def set_current_user_timezone!(&block)
    Time.user_zone(current_user.timezone, &block)
  end
end      

熱門文章

我的「最後一個」產品終於上線了,它的名字叫「奧丁」(Odin)

為什麼要說是「最後一個」呢?因為接下來任...

rails 動態時區實作

如何依照不同的條件,例如登入的使用者,來...

從 FB fanpage 下載的 JSON 檔如何正確 parse

從臉書下載粉專歷史資料中,處理 JSON...