質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
date

dateは、date型や日付に関する関数や処理についてのタグです

DateTime

多くのプログラミング言語におけるDateTimeオブジェクトは、日付と時間に関する演算と出力を行います。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

Q&A

解決済

2回答

13860閲覧

ruby データから日付のみ取り出したい

taka.yan

総合スコア21

date

dateは、date型や日付に関する関数や処理についてのタグです

DateTime

多くのプログラミング言語におけるDateTimeオブジェクトは、日付と時間に関する演算と出力を行います。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 4

Ruby on Rails4はRubyによって書かれたオープンソースのウェブフレームワークです。 Ruby on Railsは「設定より規約」の原則に従っており、効率的に作業を行うために再開発を行う必要をなくしてくれます。

0グッド

2クリップ

投稿2015/07/06 06:43

今つくっているプログラムで特定のデータが作成された日からの経過日を計算したいです
プログラムが作られた日時はデータベースに格納される仕様なのですが、形式に時間も入っており日付の引き算ができません。データベースのデータから日付の情報だけ取り出す方法はあるのでしょうか?

d1 = Date.today # => Mon, 06 Jul 2015
d2 = data.publish_at # => Tue, 23 Jun 2015 11:14:25 JST +09:00 データベースから取り出した作成日時

d1 - d2

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

lang

1d1 = Date.today # => Mon, 06 Jul 2015 2d2 = data.publish_at # => Tue, 23 Jun 2015 11:14:25 JST +09:00 データベースから取り出した作成日時 3 4puts d1-Date.parse(d2)

投稿2015/07/06 07:07

otn

総合スコア84538

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rifuch

2015/07/06 07:14

Date.parseにTimeオブジェクト投げられるんですね!
rifuch

2015/07/06 07:19

Date.parseに食わせるのは文字列表現でなければならないようなので、Date.parse(d2.to_s)が正解なようです
otn

2015/07/06 08:03

あ、publish_at はTimeオブジェクトだったんですね。文字列かと思ってました。 なら、to_date でTimeオブジェクトからDateオブジェクトに変換できます。
taka.yan

2015/07/07 07:25

お二人ともありがとうございました! 解決しました!
rifuch

2015/07/07 07:38

to_dateメソッドは知りませんでした・・・恥ずかしい 公式ドキュメントの組み込みクラスのTimeにはそのメソッド乗ってませんよね・・・
otn

2015/07/07 11:30

> 公式ドキュメントの組み込みクラスのTimeにはそのメソッド乗ってませんよね・・・ http://docs.ruby-lang.org/ja/2.2.0/library/date.html require "date" で定義されます。Dateクラスが無いとto_dateしようが無い。 こういう、関連クラスにメソッド追加するライブラリは結構ありますよ。たしかに、見つけにくいですね。
rifuch

2015/07/08 03:40

情報ありがとうございます! require "date"で追加されるメソッドですか・・・ そう考えると結構覚えてない追加メソッドって多そうですね。
guest

0

いったんDateにパースしてあげれば良さそう

lang

1d1 = Date.tody 2d2 = Date.new(data.publish_at.year, data.publish_at.month, data.publish_at.day) 3d1 - d2

投稿2015/07/06 07:04

rifuch

総合スコア1901

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rifuch

2015/07/06 07:18

ちょっと試してみました。 d2 = Date.parse(data.published_at.to_s) にするとOKなので、こっちが簡単ですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問