2009-06-16 2 views
18

Есть ли парсер естественного языка для даты/времени в javascript?Есть ли парсер естественного языка для даты/времени в javascript?

+0

Очень похоже на ваш другой пост http://stackoverflow.com/questions/1003330/is-there-a-natural-language-parser-for-date-times-in-coldfusion Почему бы просто не сказать javascript или Cold Fusion? – samoz

+2

One - это клиентское решение, одно - серверное. Я чувствовал, что попытка совместить их приведет к 3-мя вопросам: 1. Что лучше? 2. Какое лучшее клиентское решение? 3.Whats лучшее решение на стороне сервера? –

ответ

19

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

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

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

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

Затем вы можете скрывать результат в differen t date или использовать API для дальнейшего управления датой.

+3

SugarJS лучше, особенно при обработке дел, которые включают как дату, так и время. – Haozhun

+0

Я полностью согласен с @Haozhun.Раньше я использовал MomentJS, DateJS и SugarJS, но IMO последний, безусловно, лучший в NLP. –

8

Date.js удовлетворяет ваши потребности? Или вы ищете что-то еще?

+1

Я нашел это, но исходный код меня пугает, на нескольких уровнях. Я надеялся на то, что интегрируется с одной из «современных» библиотек javascript. –

+0

Что вас пугает, расширение собственных объектов? Или что-то другое? – Nosredna

+1

на поверхности, отсутствие форматирования и/или отсутствие версии разработки и производственной версии. Это также не активный проект, который может не иметь отношения ко всем. –

-5

Вы можете использовать переводчик jQuery datepicker, получить номер дня и месяца и выбрать день с даты дня.

Вы можете добавить данные к этому объекту, и можете загрузить до 60 языков, которые я думаю. (Объект ниже не является полным, я удалил некоторый код, чтобы упростить его).

$.datepicker.regional['sv'] = { 
    monthNames:['Januari','Februari','Mars','April','Maj','Juni','Juli','Augusti','September','Oktober','November','December'], 
    monthNamesShort: ['Jan','Feb','Mar','Apr','Maj','Jun','Jul','Aug','Sep','Okt','Nov','Dec'], 
    dayNamesShort: ['Sön','Mån','Tis','Ons','Tor','Fre','Lör'], 
    dayNames: ['Söndag','Måndag','Tisdag','Onsdag','Torsdag','Fredag','Lördag'], 
    dayNamesMin: ['Sö','Må','Ti','On','To','Fr','Lö'] 
}; 

Теперь получить день и месяц номер

var dateObject = new Date(); 
var day = dateObject.getDay(); 
var month = dateObject.getMonth(); 
var monthText = $.datepicker.regional['sv']['monthNames'][month]; 
var dayText = $.datepicker.regional['sv']['dayNames'][day]; 
+0

Это не отвечает на вопрос. OP запрашивает * parser *, то есть функцию, которая принимает строку типа «23/02/1945» или «следующий понедельник» и возвращает объект «Date». – bfontaine

17

Я разработал небольшую библиотеку под названием хронографа для разбора даты в JavaScript, тоже. Я также добавляю функцию синтаксиса диапазона дат (например, «12 ноября - 13 декабря 2012 года»)

Вы можете зарегистрироваться в here.

+3

У вас есть лучший НЛП за время, которое я нашел до сих пор в JavaScript. До сих пор ранг был бы: # 1 chrono, # 2 sugarjs, # 3 datejs. Совет. Я предлагаю вам переименовать его в Chronojs, чтобы дать ему более доступное для поиска и отличительное имя. –

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