将TimeStamp返回更改为mm:sec,而不是hour



我有这个:

  <(Time.now).to_i>

它返回一个整数并希望将该整数值转换为(分钟和秒)仅根据我的要求

试试这个

Time.now.strftime("%M:%S")

希望你能找到这个

你可以通过这个获得分钟和秒

delta =  Time.now.to_i
    %w[ weeks days hours minutes seconds].collect do |step|
      seconds = 1.send(step)
      (delta / seconds).to_i.tap do
        delta %= seconds
      end
    end

它将返回一个具有5个元素的数组。你可以从arr[3]arr[4]

也可以将整数格式的任意时间取为delta

如果您想在hr=0 时只显示分钟和秒

@hr = timedef[0]
@mn = timedef[1]
@sec = timedef[2]
time_remains = ''
unless self.timedef.blank?
  if @hr > 0
    time_remains = time_remains + "#{@hr} #{'hour'.pluralize(@hr)} "
  elsif @mn > 0
    time_remains = time_remains + "#{@mn} #{'minute'.pluralize(@mn)} and #{@sec} #{'second'.pluralize(@sec)} "
  else
    time_remains = time_remains + "#{@sec} #{'second'.pluralize(@sec)} "
  end
end

使用strftime--请参阅本页http://www.dzone.com/snippets/date-time-format-ruby它有格式(尽管它类似于c/c++和Java)

此外,你可能会想对时间类的时区处理进行一些研究。有一个函数:intimezone,可以为您转换时区。因此,通常情况下,您存储时间或提取的时间是UTC,然后您可以在存储时间之前动态更改时区。

最新更新