SlideShare ist ein Scribd-Unternehmen logo
1 von 15
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Was ist angesagt?

IT系エンジニアのためのプレゼンテーション入門
IT系エンジニアのためのプレゼンテーション入門IT系エンジニアのためのプレゼンテーション入門
IT系エンジニアのためのプレゼンテーション入門Masahito Zembutsu
 
TDD のこころ
TDD のこころTDD のこころ
TDD のこころTakuto Wada
 
マスタデータの管理と運用について
マスタデータの管理と運用についてマスタデータの管理と運用について
マスタデータの管理と運用についてKentarou Takeda
 
社内ドキュメント検索システム構築のノウハウ
社内ドキュメント検索システム構築のノウハウ社内ドキュメント検索システム構築のノウハウ
社内ドキュメント検索システム構築のノウハウShinsuke Sugaya
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪Takuto Wada
 
Java + React.jsでSever Side Rendering #reactjs_meetup
Java + React.jsでSever Side Rendering #reactjs_meetupJava + React.jsでSever Side Rendering #reactjs_meetup
Java + React.jsでSever Side Rendering #reactjs_meetupToshiaki Maki
 
GNU AGPLv3について(On GNU AGPLv3)
GNU AGPLv3について(On GNU AGPLv3)GNU AGPLv3について(On GNU AGPLv3)
GNU AGPLv3について(On GNU AGPLv3)真行 八田
 
Laravel の paginate は一体何をやっているのか
Laravel の paginate は一体何をやっているのかLaravel の paginate は一体何をやっているのか
Laravel の paginate は一体何をやっているのかShohei Okada
 
日本語テストメソッドについて
日本語テストメソッドについて日本語テストメソッドについて
日本語テストメソッドについてkumake
 
ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発Takafumi ONAKA
 
Controllerのbefore_actionにおける インスタンス変数セットについて
Controllerのbefore_actionにおける インスタンス変数セットについてControllerのbefore_actionにおける インスタンス変数セットについて
Controllerのbefore_actionにおける インスタンス変数セットについてpospome
 
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところY Watanabe
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021Hiroshi Tokumaru
 
クロージャデザインパターン
クロージャデザインパターンクロージャデザインパターン
クロージャデザインパターンMoriharu Ohzu
 
Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...
Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...
Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...Naruhiko Ogasawara
 
PPL 2022 招待講演: 静的型つき函数型組版処理システムSATySFiの紹介
PPL 2022 招待講演: 静的型つき函数型組版処理システムSATySFiの紹介PPL 2022 招待講演: 静的型つき函数型組版処理システムSATySFiの紹介
PPL 2022 招待講演: 静的型つき函数型組版処理システムSATySFiの紹介T. Suwa
 
Ruby で高速なプログラムを書く
Ruby で高速なプログラムを書くRuby で高速なプログラムを書く
Ruby で高速なプログラムを書くmametter
 
REST API のコツ
REST API のコツREST API のコツ
REST API のコツpospome
 

Was ist angesagt? (20)

IT系エンジニアのためのプレゼンテーション入門
IT系エンジニアのためのプレゼンテーション入門IT系エンジニアのためのプレゼンテーション入門
IT系エンジニアのためのプレゼンテーション入門
 
TDD のこころ
TDD のこころTDD のこころ
TDD のこころ
 
マスタデータの管理と運用について
マスタデータの管理と運用についてマスタデータの管理と運用について
マスタデータの管理と運用について
 
社内ドキュメント検索システム構築のノウハウ
社内ドキュメント検索システム構築のノウハウ社内ドキュメント検索システム構築のノウハウ
社内ドキュメント検索システム構築のノウハウ
 
例外設計における大罪
例外設計における大罪例外設計における大罪
例外設計における大罪
 
Java + React.jsでSever Side Rendering #reactjs_meetup
Java + React.jsでSever Side Rendering #reactjs_meetupJava + React.jsでSever Side Rendering #reactjs_meetup
Java + React.jsでSever Side Rendering #reactjs_meetup
 
GNU AGPLv3について(On GNU AGPLv3)
GNU AGPLv3について(On GNU AGPLv3)GNU AGPLv3について(On GNU AGPLv3)
GNU AGPLv3について(On GNU AGPLv3)
 
Laravel の paginate は一体何をやっているのか
Laravel の paginate は一体何をやっているのかLaravel の paginate は一体何をやっているのか
Laravel の paginate は一体何をやっているのか
 
日本語テストメソッドについて
日本語テストメソッドについて日本語テストメソッドについて
日本語テストメソッドについて
 
ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発ふつうのRailsアプリケーション開発
ふつうのRailsアプリケーション開発
 
Controllerのbefore_actionにおける インスタンス変数セットについて
Controllerのbefore_actionにおける インスタンス変数セットについてControllerのbefore_actionにおける インスタンス変数セットについて
Controllerのbefore_actionにおける インスタンス変数セットについて
 
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
 
クロージャデザインパターン
クロージャデザインパターンクロージャデザインパターン
クロージャデザインパターン
 
Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...
Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...
Webブラウザで動くOSSオフィスソフト、LibreOffice Onlineの中身に迫る / LibreOffice Online Implementa...
 
Map
MapMap
Map
 
PPL 2022 招待講演: 静的型つき函数型組版処理システムSATySFiの紹介
PPL 2022 招待講演: 静的型つき函数型組版処理システムSATySFiの紹介PPL 2022 招待講演: 静的型つき函数型組版処理システムSATySFiの紹介
PPL 2022 招待講演: 静的型つき函数型組版処理システムSATySFiの紹介
 
圏とHaskellの型
圏とHaskellの型圏とHaskellの型
圏とHaskellの型
 
Ruby で高速なプログラムを書く
Ruby で高速なプログラムを書くRuby で高速なプログラムを書く
Ruby で高速なプログラムを書く
 
REST API のコツ
REST API のコツREST API のコツ
REST API のコツ
 

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