2009-06-16 4 views
18

Gibt es einen Parser für natürliche Sprache für Datum/Uhrzeit in Javascript?Gibt es einen Parser für natürliche Sprache für Datum/Uhrzeit in Javascript?

+0

Sehr ähnlich wie Ihre anderen Post http://stackoverflow.com/questions/1003330/is-there-a-natural-language-parser-for-date-times-in-coldfusion Warum nicht einfach sagen: Javascript oder kalte Fusion? – samoz

+2

Eine ist eine Client-seitige Lösung, eine ist eine Server-Seite. Ich hatte das Gefühl, dass der Versuch, sie zu kombinieren, zu 3 Fragen führen würde: 1. Was ist besser? 2. Was ist die beste Client-seitige Lösung? 3.Was ist die beste serverseitige Lösung? –

Antwort

19

SugarJS unterstützt einige natürliche Sprache Parsing von Daten und Uhrzeiten.

Sie können hier zum Live-Beispiel springen: http://sugarjs.com/dates

Zum Beispiel unterstützt es die folgenden Eingänge:

  • morgen
  • 2 Wochen von Montag
  • 25. Mai von nächstes Jahr

Sie können dann das Ergebnis in differen konvertieren t Datumsformate oder verwenden Sie die API, um das Datum weiter zu manipulieren.

+3

SugarJS ist besser, besonders bei der Behandlung von Fällen, die Datum und Uhrzeit enthalten. – Haozhun

+0

Ich stimme @Haozhun völlig zu.Ich habe MomentJS, DateJS und SugarJS schon vorher benutzt, aber IMO letzteres ist mit Abstand das beste bei NLP. –

8

Erfüllt Date.js Ihre Bedürfnisse? Oder suchen Sie etwas anderes?

+1

Ich fand das, aber der Quellcode macht mir Angst, auf mehreren Ebenen. Ich habe auf etwas gehofft, das in eine der "modernen" Javascript-Bibliotheken integriert ist. –

+0

Was erschreckt Sie, die Erweiterung von nativen Objekten? Oder etwas anderes? – Nosredna

+1

auf der Oberfläche, die fehlende Formatierung und/oder das Fehlen einer Entwicklungsversion und einer Produktionsversion. Es ist auch kein aktives Projekt, das nicht für jeden relevant sein kann. –

-5

Sie können die jQuery Datepicker-Übersetzung verwenden, die Tag- und Monatsnummer abrufen und den Tag von datepicker days auswählen.

Sie können Werte zu diesem Objekt hinzufügen, und Sie können bis zu 60 Sprachen herunterladen, denke ich. (Das Objekt unten ist nicht vollständig, ich habe etwas Code entfernt, um es zu vereinfachen).

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

erhalten Jetzt den Tag und Monat Anzahl

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

Dies beantwortet die Frage nicht. OP fragt nach einem * Parser *, dh nach einer Funktion, die einen String wie '23/02/1945 'oder' nächsten Montag 'verwendet und ein' Date'-Objekt zurückgibt. – bfontaine

17

ich eine kleine Bibliothek mit dem Namen Chrono zum Parsen Datum in Javascript zu entwickelt haben. Ich füge auch Datumsbereich Parsing-Funktion (wie '12 November - 13. Dezember 2012 ')

Sie können in here einchecken.

+3

Sie haben das beste NLP für die Zeit, die ich bisher in JavaScript gefunden habe. Bisher wäre Rang: # 1 chrono, # 2 sugarjs, # 3 datejs. Tipp: Ich schlage vor, Sie in Chronojs umzubenennen, um ihm einen durchsuchbaren und unverwechselbaren Namen zu geben. –