0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

[Rails6]created_atを利用して日本の日付,時刻を自由に表示する。

Posted at

#概要
チャット機能にチャットを送った日付と時刻を表示したいと思い調べてわかった事を以下にまとめます。
初学者故,至らぬところがあるかと思いますので,訂正がある場合は教えていただけると幸いです。
##環境
ruby 2.6.3
Rails 6.0.3
##結論:strftime("%Y-%m-%d %H:%M")を利用すれば解決。
strftimeメソッドは日時データを編集して文字列に変換するメソッドです。
実際に使っていきましょう!
###その前に
create_atの時刻はUTFが基準になっているので日本時刻に合わせていない方はconfig/application.rb内にconfig.time_zone = 'Tokyo'を追加すればOKです。サーバの再起動は忘れずに。

config/application.rb
require_relative 'boot'

require 'rails/all'

module SampleApp
  class Application < Rails::Application
    # Initialize configuration defaults for originally generated Rails version.
    config.load_defaults 6.0

    # Settings in config/environments/* take precedence over those specified here.
    # Application configuration can go into files in config/initializers
    # -- all .rb files in that directory are automatically loaded after loading
    # the framework and any gems in your application.
    config.time_zone = 'Tokyo' #<--ここに追加!
  end
end

###strftime("%Y-%m-%d %H:%M")を使ってみる。
チャット用テーブルをpostsテーブルとしているので利用するインスタンスは@postとします。
以下のように記述することで綺麗に書くことができます。

 @post.created_at
 #2021-05-27 11:02:16 +0900と表示される

 @post.created_at.strftime("%Y-%m-%d %H:%M")
 #2021-05-27 11:02と表示される

###%Y-%m-%d %H:%Mとはなんなのか?
実は%Y,%mなどは個別に与えられた意味があります。以下に記しておきます。
(参考URL:https://docs.ruby-lang.org/ja/latest/method/Time/i/strftime.html)
%Y:西暦を表す
%m:月を表す数字(01-12)
%d:日(01-31)
%H:24時間制の時(00-23)
%M:分(00-59)

したがって上記のコードを訳すとするなら

@post.created_at.strftime("%Y-%m-%d %H:%M")
  #@postのcreated_atの情報のうち%Y,%m,%d,%H,%Mを抜き出し
  #表示の仕方は%Y-%m-%d %H:%M すなわち 2021-05-27 11:02 と,しなさい。

ということになりますでしょうか。西暦がいらねーよな方は以下のように書けば良いでしょう。

@post.created_at.strftime("%m-%d %H:%M") #%Y- を消した
  #05-27 11:02と表示される。

##まとめ
strftimeメソッドを利用することで,自分の実現したいページの作成に一歩近づけるかと思います。
この記事が誰かの役に立ってくれたら嬉しいです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?