Файл. (Имя файла) .mtime тот же формат вывода, что и Date.today (ruby) - PullRequest
2 голосов
/ 11 октября 2010

Я хочу вычесть результат File.mtime и Date.today . Время и выходные игнорируются.Я за чем-то вроде

Date.today - File.mtime

File.mtime дает мне Fri Oct 08 11:00:18 +1100 2010 и Date.today 2010-10-11

Я думал, что to_s () будет работать для меня, но File.mtime(filename).to_s дает мне такой же результат, как File.mtime(filename)

Любая идея, как я могу получить желаемыйформат даты из File.mtime?И почему to_s не работает?

Ответы [ 2 ]

5 голосов
/ 11 октября 2010

Как то так?

irb(main):001:0> File.mtime("file")
=> 2010-10-08 17:56:10 +0800
irb(main):002:0> File.mtime("file").year
=> 2010
irb(main):003:0> File.mtime("file").month
=> 10
irb(main):004:0> File.mtime("file").day
=> 8

Аналогично с датой

irb(main):001:0> require 'date'         
=> true                                 
irb(main):002:0> Date.today         
=> #<Date: 2010-10-11 (4910961/2,0,2299161)>
irb(main):003:0> Date.today.year            
=> 2010                                     
irb(main):004:0> Date.today.month
=> 10                            
irb(main):005:0> Date.today.day
=> 11     

Или вы можете использовать strftime

irb(main):001:0> File.mtime("file").strftime("%Y-%m-%d")
=> "2010-10-08"
2 голосов
/ 11 октября 2010

Попробуйте использовать Time.now и конвертировать в дни вручную:

age = Time.now - File.mtime(filename)
age_in_days = (age / 24*60*60).to_i
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...