Rails: получите время от даты и времени - PullRequest
24 голосов
/ 22 июля 2011

Если у меня есть значение даты и времени, например, 10.01.2011, 9:00:00, как мне получить 9:00 от этого времени?

Ответы [ 6 ]

39 голосов
/ 22 июля 2011

strftime сделает это.

t = Time.now
t.strftime("%I:%M%p")

Все остальные атрибуты здесь:

http://www.wetware.co.nz/blog/2009/07/rails-date-formats-strftime/

21 голосов
/ 15 мая 2014
DateTime.new(2011,10,1,9).to_s(:time) #=> "09:00"

DateTime.now.to_s(:time) #=> "11:58"

С Время документов

5 голосов
/ 18 октября 2012

Если вам нужно выполнить поиск по времени с даты-времени

:conditions => ["created_at::time > ?",  "08:30" ]
4 голосов
/ 22 июля 2011

Вы получаете время от даты, используя следующий код

datetime.strftime("%I:%M %P")
3 голосов
/ 22 июля 2011

Если вам нужен только вывод строки, вы можете сделать, как сказал Хитеш и Крис, с помощью strftime, но если вы пытаетесь получить экземпляр Time из экземпляра DateTime, вы можете сделать следующее:

Time.parse(DateTime.now.to_s)

Если вы хотите проанализировать строку типа "1/10/2011 9:00:00" и получить обратно экземпляр Time, вы можете использовать тот же метод parse:

Time.parse("1/10/2011 9:00:00") #=> 2011-10-01 09:00:00 -0500

Обратите внимание на формат: Ruby использует не-американский формат d / m / y при разборе дат.

Чтобы вывести строковое представление времени дня из этого экземпляра Time, он вернулсядо strftime.

Надеюсь, это прояснит ситуацию.

0 голосов
/ 01 апреля 2016

С переводами

Если вы используете I18n, вы можете легко определить свои собственные форматы времени

локализовать формат времени, который вы передаетеобъект Time для I18n.l или (предпочтительно) использовать Rails '#l helper.Вы можете выбрать формат, передав опцию: format

# app/views/home/index.html.erb
<h1><%=t :hello_world %></h1>
<p><%= flash[:notice] %></p
<p><%= l Time.now, format: :short %></p>

# config/locales/pirate.yml
pirate:
  time:
    formats:
      short: "arrrround %H'ish"

Обратитесь к ответу @Chris Barretto для списка опций форматирования

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...