Help us understand the problem. What is going on with this article?

RailsのDate型のサンプル

More than 1 year has passed since last update.

はじめに

Ruby on Railsで、Date型を使う機会があったので、サンプルコードとして使い方をまとめてみました。
実行結果はサンプルコードの下に記述してあります。
すべて 2018/01/05 に実行した結果ととなっています。

基本的な使い方

年、月、日を指定して取得する

Date.new(2017, 01, 01)
# => Sun, 01 Jan 2017

今日の年月日を取得する

Date.today
# Fri, 05 Jan 2018

今日の日付を取得する

Date.today.day
# 5

今月の月を取得する

Date.today.month
# 1

今年の年を取得する

Date.today.month
# 2018

昨日の日付を取得する

Date.yesterday
# Thu, 04 Jan 2018

〇〇日前、〇〇日後

~~~s_ago, ~~~s_since というメソッドが有効です。

おとといの日付を取得する

Date.today.days_ago(2)
# Wed, 03 Jan 2018

翌日の日付を取得する

Date.tomorrow
# Sat, 06 Jan 2018

2日後の日付を取得する

Date.today.days_since(2)
# Sun, 07 Jan 2018

先月の日付を取得する

Date.today.last_month  #Date.last_monthだとエラーが起きる
# Tue, 05 Dec 2017

翌月の日付を取得する

Date.today.next_month  #Date.next_monthだとエラーが起きる
# Mon, 05 Feb 2018

昨年の日付を取得する

Date.today.last_year
# Thu, 05 Jan 2017

翌年の日付を取得する

Date.today.next_year
# Sat, 05 Jan 2019

始めの日付、終わりの日付

beginning_of_~~~, end_of_~~~ というメソッドが有効です。

今週の始めの日の日付を取得する

Date.today.beginning_of_week
# Mon, 01 Jan 2018

今週の終わりの日の日付を取得する

Date.today.end_of_week
# Sun, 07 Jan 2018

今月の始めの日の日付を取得する

Date.today.beginning_of_month
# Mon, 01 Jan 2018

先月・翌月の始めの日の日付を取得する

#先月
Date.today.last_month.beginning_of_month
# Fri, 01 Dec 2017

#翌月
Date.today.next_month.beginning_of_month
# Thu, 01 Feb 2018

今月の終わりの日の日付を取得する

Date.today.end_of_month
# Wed, 31 Jan 2018

先月・翌月の終わりの日の日付を取得する

#先月
Date.today.last_month.end_of_month
# Wed, 31 Jan 2018

#翌月
Date.today.next_month.end_of_month
# Wed, 28 Feb 2018
ryouzi
都内のIT企業で働いています。Ruby on Rails, AWSなどが少しわかります。とあるベンチャー企業でチーム開発責任者、サイト運営責任者などやっていました。フットサルと釣りとビールが趣味。
http://ryouzis.hatenablog.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away