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

我已经尝试过这个主题的变化,每次它都失败了

2012 年 8 月 14 日星期二 01:16:00 -0600:Time (NoMethodError) 调用了私有方法“to_date”

我确信答案在网络上的某个地方,但我没有向 Google 提出正确的问题,因为我还没有找到它。我只是断断续续地用 Ruby 编写代码几个月,我想这很简单。那么我错过了什么?

谢谢

4

3 回答 3

1

您可以使用日期操作做很多事情,请在文档中查找更多信息!但请不要使用带重音的 ruby​​ :)

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
require 'date'    
def date_to_array date = Date.today
  [date.year, date.mon, date.mday]
end

或者,如果您在应用程序中到处使用它,请扩展 Date:

require 'date'
class Date   
  def to_a
    [self.year, self.mon, self.mday]
  end
end
于 2012-08-15T01:30:06.737 回答
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 回答