Strftime (час) показывает неправильное время? - PullRequest
0 голосов
/ 07 апреля 2010

Я использую эту строку, чтобы получить время начала первого дня месяца.

t = Time.now.to_date.beginning_of_month.beginning_of_day

Когда я отображаю это, используя t.strftime("%A %b %e @ %l:%m %p")

показывает:

Monday Feb 1 @ 12:02 AM   

Час всегда 12 (вместо 00), и более странно, что минуты меняются, чтобы соответствовать месяцу в целых числах. На февральскую дату он показывает 12:02 AM Я использую .prior_month и .next_month для переменной, чтобы двигаться вперед или назад во времени. Поэтому, когда я перееду в июнь, это будет отображаться как

Tuesday June 1 @ 12:06 AM

Но когда я просто показываю значение t с использованием прямой t.to_s, я получаю это время 00:00:00, что я и ожидаю:

Mon Feb 01 00:00:00 -0700 2010 

Аналогичная ошибка возникает при использовании end_of_day, но час всегда 11 часов вечера. и минута - это то же самое целочисленное значение, которое соответствует месяцу в целых числах, т.е. время в 11:06 вечера в июне, 23:02 вечера в феврале.

Quirky? По общему признанию нуб к Rails.

Спасибо за любые комментарии или объяснения.

Ответы [ 3 ]

2 голосов
/ 07 апреля 2010

%m - месяц года. Вы хотите %M, как в t.strftime("%A %b %e @ %l:%M %p").

Проблема end_of_day имеет смысл тогда, потому что конец дня 11: 59.

0 голосов
/ 07 апреля 2010

Я считаю, что это то, что вы хотите:

t = Time.now.to_date.beginning_of_month.beginning_of_day
t.strftime("%A %b %e @ %H:%M %p")

Более подробную информацию о time форматировании можно найти здесь .

0 голосов
/ 07 апреля 2010

Если мы говорим здесь о синтаксисе форматирования даты в PHP, %I относится к двузначному представлению часа в 12-часовом формате, то есть от 01 до 12. Если вы хотите 24-часовое время, используйте %H вместо.

И %m - месяцы, а %M - минуты.

См. Документацию PHP здесь .

Изменить:

Я глуп, и подумал, что вы говорите о PHP из-за названия функции. К счастью, синтаксис этого в Ruby, по-видимому, практически такой же, как вы можете видеть из ответа Дж.

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