Разбор значений даты / времени на естественном языке в форматированные строки даты / времени - PullRequest
6 голосов
/ 02 марта 2010

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

Tomorrow at 3pm
Now
Today at 1pm
Next tuesday 4pm

Как мне разобрать такой читаемый текст в строки даты / времени?

E.g. dd/mm/yyyy hh:mm

Можно ли это сделать на стороне клиента с помощью jquery или ajax через php?

Заранее спасибо за любые советы или идеи:)

Ответы [ 4 ]

6 голосов
/ 02 марта 2010

Существует библиотека javascript с открытым исходным кодом, которая делает все эти интересные вещи с датами. Вы можете проверить http://www.datejs.com/

2 голосов
/ 02 марта 2010

Хотя я голосую за datejs.com, другой вариант - timeapi.org.

timeapi.org имеет JSONP API для преобразования запросов на естественном языке в дату / время.

0 голосов
/ 04 октября 2011

Я думаю, что это дубликат Есть ли в javascript анализатор естественного языка для даты / времени?

Ответ, который я только что дал на этот вопрос, приведен ниже:

SugarJS поддерживает синтаксический анализ некоторых дат и времени на естественном языке.

Вы можете перейти к живому примеру здесь: http://sugarjs.com/dates

Например, он поддерживает следующие входные данные:

  • послезавтра
  • 2 недели с понедельника
  • 25 мая следующего года

Затем можно преобразовать результат в различные форматы даты или использовать API для дальнейшей обработки даты.

0 голосов
/ 02 марта 2010

Спасибо, Синан и вср. Я проголосовал за оба ваших ответа. Сначала я был очень взволнован тем, что может предложить datejs, но он кажется ограниченным в своей способности обрабатывать дату на естественном языке. Он не очень хорошо справляется с датой и временем.

timeapi.org выглядит многообещающе, но поскольку он использует ruby, а версия api опирается на службу, которая не выглядит очень надежной.

Я протестировал с помощью php strtotime и обнаружил, что он может довольно хорошо обрабатывать более естественный язык даты. Использование php позволяет мне добавлять другие термины на естественном языке, которые также не поддерживаются. Похоже, я буду использовать ajax для обработки даты и времени на естественном языке от пользователя.

Хотелось бы услышать ваше мнение о моем подходе. :) еще раз спасибо!

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