2009-06-16 10 views
18

Esiste un parser del linguaggio naturale per data/ora in javascript?Esiste un parser del linguaggio naturale per data/ora in javascript?

+0

Molto simile al tuo post di altri http://stackoverflow.com/questions/1003330/is-there-a-natural-language-parser-for-date-times-in-coldfusion Perché non basta dire javascript o Cold Fusion? – samoz

+2

Una è una soluzione lato client, una lato server. Sentivo che provare a combinarli avrebbe portato a 3 domande: 1. Quale è meglio? 2. Qual è la migliore soluzione lato client? 3. Qual è la migliore soluzione lato server? –

risposta

19

SugarJS supporta l'analisi del linguaggio naturale di date e orari.

Si può saltare l'esempio vivo qui: http://sugarjs.com/dates

Per esempio, supporta i seguenti ingressi:

  • dopodomani
  • 2 settimane dal lunedi
  • 25 maggio di l'anno prossimo

È quindi possibile nascondere il risultato in differen t formati di data o utilizzare l'API per manipolare ulteriormente la data.

+3

SugarJS è migliore, soprattutto quando si gestiscono casi che includono sia la data che l'ora. – Haozhun

+0

Sono completamente d'accordo con @Haozhun.Ho usato MomentJS, DateJS e SugarJS prima ma IMO quest'ultimo è di gran lunga il migliore in PNL. –

8

Date.js soddisfa le tue esigenze? O stai cercando qualcos'altro?

+1

L'ho trovato, ma il codice sorgente mi spaventa, su più livelli. Speravo in qualcosa che si integri con una delle "moderne" librerie javascript. –

+0

Che cosa ti spaventa, l'estensione degli oggetti nativi? O qualcos'altro? – Nosredna

+1

sulla superficie, la mancanza di formattazione e/o la mancanza di una versione di sviluppo e versione di produzione. Inoltre, non è un progetto attivo, che potrebbe non essere pertinente per tutti. –

-5

È possibile utilizzare la traduzione di jQuery datepicker, ottenere il numero del giorno e del mese e selezionare il giorno tra i giorni di data e ora.

È possibile aggiungere valori a questo oggetto e si possono scaricare fino a 60 lingue. (L'oggetto sottostante non è completo, ho rimosso del codice per semplificarlo).

$.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ö'] 
}; 

ora ottenere il giorno e il mese numero

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

Questo non risponde alla domanda. L'OP sta chiedendo un * parser *, cioè una funzione che prende una stringa come '23/02/1945 'o' next lunedi 'e restituisce un oggetto 'Date'. – bfontaine

17

ho sviluppato una piccola libreria chiamata crono per la data parsing in Javascript troppo. Aggiungo anche la funzione di analisi dell'intervallo di date (ad esempio "12 Nov - 13 dic 2012")

È possibile effettuare il check-in here.

+3

Hai il miglior NLP per il tempo che ho trovato finora in JavaScript. Quindi il grado più alto sarebbe: # 1 chrono, # 2 sugarjs, # 3 datejs. Suggerimento: ti suggerisco di rinominarlo in Chronojs per dargli un nome più ricercabile e distintivo. –

Problemi correlati