Как мне поступить с приблизительными датами в Ruby on Rails? - PullRequest
1 голос
/ 23 июня 2010

Для моего заявления мне нужно обработать приблизительные даты, например, «около июня 1940 года» должно быть принято как плюс или минус 2 года около июня 1940 года. Или они могут ввести «около 1940 года», нужно принять как плюс минус 2 года около 1940 года. Вот полный список возможных форматов.

  • 1940
  • Nov.1940
  • ноябрю 1940
  • 6 ноября 1940
  • 6 ноября 1940
  • О (дата)
  • Абт. (Дата)
  • скажем (дата)
  • BEF. (Дата)
  • до (дата)
  • корм. (Дата)
  • После (дата)
  • между (дата) и (дата)
  • ставка. (дата) и (дата)

Я мог бы написать свой собственный парсер, но проблема в том, что я не уверен, как справляться со странными пролетами. Например, если они говорят о 1940 году, мне нужно сказать о 1938-1942 годах. Или для июня 1940 г. мне нужно сказать с 1 июня 1940 г. по 30 июня 1940 г. Я хочу иметь возможность действительно хорошо это искать, поэтому я конвертирую все в даты и время. Есть ли какие-нибудь драгоценные камни, чтобы справиться с этим или какие-либо идеи о том, как лучше всего справиться с этим в БД?

Я пробовал Chronic, но он неправильно анализирует, например, если вы введете «1940», он думает, что сегодня 19: 40.

Есть идеи?

Спасибо.

1 Ответ

0 голосов
/ 23 июня 2010

Я не уверен, что вы сможете выйти из этого, не написав свой собственный парсер.Я нашел это, я не использовал его, но он может начать вас.

http://github.com/technoweenie/relative_time_helpers

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