2017-01-11 3 views
2

Мне нужно проверить, находится ли сейчас время между таймером.Rails Часовой пояс исчезает

Но я не могу сравнивать время, так как внезапно исчезает часовой пояс.

now = Time.now.in_time_zone('Berlin') 
=> Wed, 11 Jan 2017 14:58:34 CET +01:00 

time_from = send("#{day}_available_from".to_sym).in_time_zone('Berlin') 
=> Sat, 01 Jan 2000 08:00:00 CET +01:00 
time_till = send("#{day}_available_till".to_sym).in_time_zone('Berlin') 
=> Sat, 01 Jan 2000 14:50:00 CET +01:00 

    date_from = DateTime.parse("#{Time.now.in_time_zone('Berlin').strftime('%d.%m.%Y')} #{time_from.strftime('%H:%M')}") 
    => Wed, 11 Jan 2017 08:00:00 +0000 
date_till = DateTime.parse("#{Time.now.in_time_zone('Berlin').strftime('%d.%m.%Y')} #{time_till.strftime('%H:%M')}") 
=> Wed, 11 Jan 2017 14:50:00 +0000 

    now.between?(date_from, date_till) 
    => true 

Но это неправильно. 14:58:34 не между 08:00:00 -> 14:50:00

ответ

1

Часовой пояс dissapears, потому что вы не предоставляете его DateTime.parse.

Обновление time_from.strftime('%H:%M') до time_from.strftime('%H:%M %z').

+0

спасибо! –

 Смежные вопросы

  • Нет связанных вопросов^_^