SlideShare une entreprise Scribd logo
1  sur  15
Télécharger pour lire hors ligne
Railsの⽇付操作で
使う便利メソッド12選
株式会社ハンズシェア
湯本 明信
Self-introduction 1/2
• 湯本 明信(ゆもと あきのぶ)
• 株式会社ハンズシェア
• 着物、社交ダンス、フットサル
• Twitter:@kuronekopunk
Self-introduction 2/2
• 建設業者さんのマッチングサービス   
【ツクリンク】を運営
• 2013年:CakePHPで開発
• 2014年7⽉:約半年かけてRailsに書き換え
Railsの⽇付操作で
使う便利メソッド12選
Time.now
=> 2016-04-08 07:08:00 +0000
Time.current
=> Fri, 08 Apr 2016 16:08:00 JST +09:00
now, current
現在⽇時の取得
※ RubyとRailsにおけるTime, Date, DateTime, TimeWithZoneの
違い
http://qiita.com/jnchito/items/cae89ee43c30f5d6fa2c
Time.now
=> 2016-04-08 07:08:00 +0000
# 昨⽇
Time.now.yesterday
=> 2016-04-07 07:08:00 +0000
# 翌⽇
Time.now.tomorrow
=> 2016-04-09 07:08:00 +0000
yesterday, tomorrow
昨⽇、翌⽇
Time.now
=> 2016-04-08 07:08:00 +0000
# 前⽉
Time.now.prev_month
=> 2016-03-08 07:08:00 +0000
# 翌⽉
Time.now.next_month
=> 2016-05-08 07:08:00 +0000
prev_month, next_month
前⽉、翌⽉
Time.now
=> 2016-04-08 07:08:00 +0000
# 昨年
Time.now.prev_year
=> 2015-04-08 07:08:00 +0000
# 翌年
Time.now.next_year
=> 2017-04-08 07:08:00 +0000
prev_year, next_year
昨年、翌年
Time.now
=> 2016-04-08 07:08:00 +0000
# 3⽇前
Time.now.ago(3.days)
=> 2016-04-05 07:08:00 +0000
# 3ヶ⽉後
Time.now.since(3.months)
=> 2016-07-08 07:08:00 +0000
ago, since
数⽇前、 数カ⽉前… 数⽇後、数カ⽉後…
- years (年)
- mounths (⽉)
- days (⽇)
- hours (時)
- minutes (分)
- seconds (秒)
- weeks (週)
※指定できるもの
Time.now
=> 2016-04-08 07:08:00 +0000
Time.now.beginning_of_day # ⽇の始まり
=> 2016-04-08 00:00:00 +0000
Time.now.beginning_of_week # 週の始まり(⽉曜)
=> 2016-04-04 00:00:00 +0000
Time.now.beginning_of_month # ⽉の始まり
=> 2016-04-01 00:00:00 +0000
Time.now.beginning_of_year # 年の始まり
=> 2016-01-01 00:00:00 +0000
beginning_of_xxx
xxxの始まり(⽇、週、⽉、年)
Time.now
=> 2016-04-08 07:08:00 +0000
Time.now.end_of_day # ⽇の終わり
=> 2016-04-08 23:59:59 +0000
Time.now.end_of_week # 週の終わり(⽇曜)
=> 2016-04-10 23:59:59 +0000
Time.now.end_of_month # ⽉の終わり
=> 2016-04-30 23:59:59 +0000
Time.now.end_of_year # 年の終わり
=> 2016-12-31 23:59:59 +0000
end_of_xxx
xxxの終わり(⽇、週、⽉、年)
Time.now
=> 2016-04-08 07:08:00 +0000
Time.now.all_day # 1⽇
=> 2016-04-08 00:00:00 +0000..2016-04-08 23:59:59 +0000
Time.now.all_week # 1週間
=> 2016-04-04 00:00:00 +0000..2016-04-10 23:59:59 +0000
Time.now.all_month # 1ヶ⽉間
=> 2016-04-01 00:00:00 +0000..2016-04-30 23:59:59 +0000
Time.now.all_year # 1年間
=> 2016-01-01 00:00:00 +0000..2016-12-31 23:59:59 +0000
all_xxx
【期間】1⽇、1週間、1ヶ⽉間、1年間
# 「今⽇、投稿されたPostの⼀覧が欲しい!」
Post.where(created_at: Time.current.all_day)
# 「前⽉の…(略)!」
Post.where(
created_at: Time.current.prev_month.all_month)
# 「昨年の…(略)!」
Post.where(
created_at: Time.current.prev_year.all_year)
便利メソッドの実⽤例
ユーザーが投稿したポスト(Postモデル)がある前提で…
さいごに
• 「こんなのないかな?」って思ったらだいたい揃ってる
• 予測しやすい [all_xxx, end_of_xxx…]
• 読みやすい [ago(3.days)]
おしまい
株式会社ハンズシェア
湯本 明信
Tw : @kuronekopunk
Fb : akinov

Contenu connexe

Tendances

MySQLアンチパターン
MySQLアンチパターンMySQLアンチパターン
MySQLアンチパターンyoku0825
 
Spring Day 2016 - Web API アクセス制御の最適解
Spring Day 2016 - Web API アクセス制御の最適解Spring Day 2016 - Web API アクセス制御の最適解
Spring Day 2016 - Web API アクセス制御の最適解都元ダイスケ Miyamoto
 
ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)NTT DATA Technology & Innovation
 
Aws auto scalingによるwebapサーバbatchサーバの構成例
Aws auto scalingによるwebapサーバbatchサーバの構成例Aws auto scalingによるwebapサーバbatchサーバの構成例
Aws auto scalingによるwebapサーバbatchサーバの構成例Takeshi Mikami
 
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組みJavaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組みChihiro Ito
 
AlmaLinux と Rocky Linux の誕生経緯&比較
AlmaLinux と Rocky Linux の誕生経緯&比較AlmaLinux と Rocky Linux の誕生経緯&比較
AlmaLinux と Rocky Linux の誕生経緯&比較beyond Co., Ltd.
 
負荷試験ツールlocustを使おう
負荷試験ツールlocustを使おう負荷試験ツールlocustを使おう
負荷試験ツールlocustを使おうiRidge, Inc.
 
Scala警察のすすめ
Scala警察のすすめScala警察のすすめ
Scala警察のすすめtakezoe
 
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニングyoku0825
 
Railsエンジニアのためのウェブセキュリティ入門
Railsエンジニアのためのウェブセキュリティ入門Railsエンジニアのためのウェブセキュリティ入門
Railsエンジニアのためのウェブセキュリティ入門Hiroshi Tokumaru
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!mosa siru
 
世界と日本のDNSSEC
世界と日本のDNSSEC世界と日本のDNSSEC
世界と日本のDNSSECIIJ
 
脱RESTful API設計の提案
脱RESTful API設計の提案脱RESTful API設計の提案
脱RESTful API設計の提案樽八 仲川
 
「NIST SP 800-204C サービスメッシュを利用したマイクロサービスベースのアプリケーション向けDevSecOpsの展開」概説
「NIST SP 800-204C  サービスメッシュを利用したマイクロサービスベースのアプリケーション向けDevSecOpsの展開」概説「NIST SP 800-204C  サービスメッシュを利用したマイクロサービスベースのアプリケーション向けDevSecOpsの展開」概説
「NIST SP 800-204C サービスメッシュを利用したマイクロサービスベースのアプリケーション向けDevSecOpsの展開」概説Eiji Sasahara, Ph.D., MBA 笹原英司
 
そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?takezoe
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことAmazon Web Services Japan
 

Tendances (20)

MySQLアンチパターン
MySQLアンチパターンMySQLアンチパターン
MySQLアンチパターン
 
Spring Day 2016 - Web API アクセス制御の最適解
Spring Day 2016 - Web API アクセス制御の最適解Spring Day 2016 - Web API アクセス制御の最適解
Spring Day 2016 - Web API アクセス制御の最適解
 
ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)
ポスト・ラムダアーキテクチャの切り札? Apache Hudi(NTTデータ テクノロジーカンファレンス 2020 発表資料)
 
Aws auto scalingによるwebapサーバbatchサーバの構成例
Aws auto scalingによるwebapサーバbatchサーバの構成例Aws auto scalingによるwebapサーバbatchサーバの構成例
Aws auto scalingによるwebapサーバbatchサーバの構成例
 
Javaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組みJavaはどのように動くのか~スライドでわかるJVMの仕組み
Javaはどのように動くのか~スライドでわかるJVMの仕組み
 
AlmaLinux と Rocky Linux の誕生経緯&比較
AlmaLinux と Rocky Linux の誕生経緯&比較AlmaLinux と Rocky Linux の誕生経緯&比較
AlmaLinux と Rocky Linux の誕生経緯&比較
 
負荷試験ツールlocustを使おう
負荷試験ツールlocustを使おう負荷試験ツールlocustを使おう
負荷試験ツールlocustを使おう
 
Scala警察のすすめ
Scala警察のすすめScala警察のすすめ
Scala警察のすすめ
 
各種データベースの特徴とパフォーマンス比較
各種データベースの特徴とパフォーマンス比較各種データベースの特徴とパフォーマンス比較
各種データベースの特徴とパフォーマンス比較
 
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
 
Serverless時代のJavaについて
Serverless時代のJavaについてServerless時代のJavaについて
Serverless時代のJavaについて
 
Railsエンジニアのためのウェブセキュリティ入門
Railsエンジニアのためのウェブセキュリティ入門Railsエンジニアのためのウェブセキュリティ入門
Railsエンジニアのためのウェブセキュリティ入門
 
マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!マイクロにしすぎた結果がこれだよ!
マイクロにしすぎた結果がこれだよ!
 
世界と日本のDNSSEC
世界と日本のDNSSEC世界と日本のDNSSEC
世界と日本のDNSSEC
 
脱RESTful API設計の提案
脱RESTful API設計の提案脱RESTful API設計の提案
脱RESTful API設計の提案
 
Vue.js で XSS
Vue.js で XSSVue.js で XSS
Vue.js で XSS
 
「NIST SP 800-204C サービスメッシュを利用したマイクロサービスベースのアプリケーション向けDevSecOpsの展開」概説
「NIST SP 800-204C  サービスメッシュを利用したマイクロサービスベースのアプリケーション向けDevSecOpsの展開」概説「NIST SP 800-204C  サービスメッシュを利用したマイクロサービスベースのアプリケーション向けDevSecOpsの展開」概説
「NIST SP 800-204C サービスメッシュを利用したマイクロサービスベースのアプリケーション向けDevSecOpsの展開」概説
 
KeycloakでAPI認可に入門する
KeycloakでAPI認可に入門するKeycloakでAPI認可に入門する
KeycloakでAPI認可に入門する
 
そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?そんなトランザクションマネージャで大丈夫か?
そんなトランザクションマネージャで大丈夫か?
 
マルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのことマルチテナント化で知っておきたいデータベースのこと
マルチテナント化で知っておきたいデータベースのこと
 

Railsの日付操作で使う便利メソッド12選