2009-06-16 7 views
18

Existe-t-il un analyseur de langage naturel pour la date et l'heure en javascript?Existe-t-il un analyseur de langage naturel pour la date et l'heure en javascript?

+0

Très proche de votre autre poste http://stackoverflow.com/questions/1003330/is-there-a-natural-language-parser-for-date-times-in-coldfusion Pourquoi ne pas simplement dire javascript ou Cold Fusion? – samoz

+2

L'une est une solution côté client, l'autre côté serveur. Je sentais qu'essayer de les combiner se traduirait par trois questions: 1. Lequel est le meilleur? 2. Quelle est la meilleure solution côté client? 3.Whats la meilleure solution de côté de serveur? –

Répondre

19

SugarJS prend en charge l'analyse en langage naturel des dates et des heures.

Vous pouvez passer à l'exemple en direct ici: http://sugarjs.com/dates

Par exemple, il prend en charge les entrées suivantes:

  • après-demain
  • 2 semaines du lundi
  • 25 mai de l'année prochaine

Vous pouvez ensuite convertir le résultat en différen t formats de date ou utilisez l'API pour manipuler davantage la date.

+3

SugarJS est meilleur, en particulier lors de la gestion des cas qui incluent à la fois la date et l'heure. – Haozhun

+0

Je suis complètement d'accord avec @Haozhun.J'ai déjà utilisé MomentJS, DateJS et SugarJS auparavant, mais IMO ce dernier est de loin le meilleur en PNL. –

8

Est-ce que Date.js répond à vos besoins? Ou cherchez-vous autre chose?

+1

Je l'ai trouvé, mais le code source me fait peur, à plusieurs niveaux. J'espérais quelque chose qui s'intègre à l'une des librairies javascript 'modernes'. –

+0

Qu'est-ce qui vous fait peur, l'extension des objets natifs? Ou autre chose? – Nosredna

+1

sur la surface, l'absence de formatage et/ou l'absence d'une version de développement et la version de production. Ce n'est pas non plus un projet actif, qui peut ne pas être pertinent pour tout le monde. –

-5

Vous pouvez utiliser la traduction jQuery datepicker, obtenir le numéro du jour et du mois et sélectionner le jour à partir des jours de l'outil datepicker.

Vous pouvez ajouter des valeurs à cet objet, et vous pouvez télécharger jusqu'à 60 langues, je pense. (L'objet ci-dessous n'est pas complet, j'ai enlevé du code pour le simplifier).

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

maintenant obtenir le numéro du jour et le mois

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

Cela ne répond pas à la question. OP demande un analyseur * *, c'est une fonction qui prend une chaîne comme '23/02/1945' ou « lundi prochain » et retourne un 'Date' objet. – bfontaine

17

J'ai développé une petite bibliothèque appelée CHRONO pendant l'analyse syntaxique date aussi Javascript. J'ajoute également la fonction d'analyse de la plage de dates (par exemple '12 Nov - 13 Dec 2012 ')

Vous pouvez enregistrer here.

+3

Vous avez la meilleure PNL pour le temps que j'ai trouvé jusqu'à présent en JavaScript. Jusqu'ici le classement serait: # 1 chrono, # 2 sugarjs, # 3 datejs. Astuce: Je vous suggère de le renommer Chronojs pour lui donner un nom plus reconnaissable et distinctif. –

Questions connexes