0

したがって、PHPには、日、月、年を次のような整数として抽出するコードがあります。

// Grab the Date
    $date = date("mdy");
    $day = (int) substr($date, 2, 2);
    $month = (int) substr($date, 0, 2);
    $yr = (int) substr($date, 4);

Rubyでも同じことをしたいです。そして、私は答えを見つけたと思いました

# Grab the Date
    now = Date.new(Time.now).to_date
    date = Date.parse(now)
    day = date.mday
    month = date.mon
    yr = date.year

私はこのテーマのバリエーションを試しましたが、失敗するたびに

プライベートメソッド`to_date'が火曜日に呼び出されました8月14日01:16:00-06002012:Time(NoMethodError)

答えはウェブ上のどこかにあると確信していますが、私はそれを見つけられなかったので、Googleに正しい質問をしていません。私はRubyをオフにしてから数か月間コーディングしてきましたが、それは単純なことだと思います。だから私は何が欠けていますか?

ありがとう

4

3 に答える 3

1

日付操作でできることはたくさんあります。詳細については、ドキュメントを参照してください。ただし、アクセント付きのルビーは使用しないでください:)

require 'date'

Date.new(2001,2,3).year
#=> 2001

Date.new(2001,2,3).yday
#=> 34 Returns the day of the year (1-366)

Date.today.day
#=> 14

date = Date.new(2008, 12, 22)
date.day
#=> 22
date.month
#=> 12
date.year
#=> 2008

Date.new(2001,2,3).strftime '%Y'
#=> "2001"
于 2012-08-15T01:37:30.137 に答える
1

私はあなたが欲しいと思います:

now = Time.now

day = now.mday

month = now.mon

yr = now.year

ちなみに、substr()PHPでは、操作なしで、よりクリーンにそれを行うことができます。

$date = new DateTime;

$day = (int) $date->format( 'j' );

$month = (int) $date->format( 'n' );

$year = (int) $date->format( 'Y' );
于 2012-08-15T01:19:01.907 に答える
1
require 'date'    
def date_to_array date = Date.today
  [date.year, date.mon, date.mday]
end

または、アプリのいたるところに使用している場合は、日付を延長します。

require 'date'
class Date   
  def to_a
    [self.year, self.mon, self.mday]
  end
end
于 2012-08-15T01:30:06.737 に答える