2015-03-07 5 views
0

далРубин - Integer для преобразования времени для конкретного формата (ГМД)

today = 20150307 

и

t= Time.at(today).strftime("%Y%m%d") 

почему это не возвращает

20150307 

но вместо

  19700822 

я ма triyng, чтобы проверить, если разница thwo даты более чем на 7 дней, но эти два значения преобразуются в целое число в первую очередь

пример

a = 20150227  #(25th February 2015) 
x = 20150307  #(7tharch 2015) 


if (x-a > 7) 

puts "This Item is overdue" 

else 

puts "All good" 

end 

мой оригинал сегодня дается этой

today = Time.now.strftime("%Y%m%d").to_i 
oneweek = (Time.now + (60 * 60 * 24 * 7)).strftime("%Y%m%d").to_i 

если я делать oneweek - today это будет целая разница не свидание один ...

хо w я могу достичь этого ???

+1

При использовании 'Time.at',' at' функция ожидает в качестве параметра секунд прошло с начала эпохи (1970-01-01), и вы обеспечить Дата. Если вы хотите правильно разобрать свои даты, используйте Date.parse следующим образом: 'Date.parse ('20150227')' и если вы хотите, чтобы разница между этими датами использовала '(Date.parse ('20150307') - Date.parse ('20150227')). to_i' – cristian

ответ

0

Time.at Спец. Количество секунд с 1970-01-01 (Эпоха).

Чтобы сделать то, что вы хотите, попробовать что-то вроде: t = Date.strptime("20150307", "%Y%m%d")

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