2010-03-02 12 views
6

Estoy tratando de que los usuarios escriban los valores de fecha y hora en un campo de entrada. Algunos ejemplos pueden incluir:Analizar los valores de fecha/hora del lenguaje natural en cadenas de fecha/hora formateadas

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

¿Cómo me gustaría analizar el texto legible en cadenas de fecha/hora?

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

¿Se puede hacer desde el lado del cliente utilizando jquery o se debe hacer ajax a través de php?

Gracias de antemano por cualquier consejo o ideas :)

Respuesta

0

Gracias Sinan y vsr. Elegí tus dos respuestas. Al principio estaba muy entusiasmado con lo que datejs tiene para ofrecer, pero parece limitado en su capacidad para procesar el tiempo de la fecha del lenguaje natural. No maneja la fecha + hora muy bien.

timeapi.org parece prometedor, pero como utiliza ruby, y la versión de la API se basa en un servicio que no parece ser muy confiable.

Probé con el strtotime de php y descubrí que podía procesar bastante mejor el tiempo de la fecha del lenguaje natural. Usar php me permite agregar otros términos de lenguaje natural que no son compatibles. Así que parece que voy a adoptar ajax para procesar el tiempo de la fecha del lenguaje natural del usuario.

Me encantaría escuchar sus ideas sobre mi enfoque. :) ¡gracias de nuevo!

2

Aunque yo voto por datejs.com, otra opción es timeapi.org.

timeapi.org tiene una API JSONP para convertir consultas de lenguaje natural a fecha/hora.

0

creo que esto es un duplicado de Is there a natural language parser for date/times in javascript?

La respuesta que acabo de dar a esa pregunta es el siguiente:

SugarJS soporta algunas análisis sintáctico del lenguaje natural de las fechas y horas.

Puede saltar al ejemplo vivo aquí: http://sugarjs.com/dates

Por ejemplo, es compatible con las siguientes entradas:

  • el día después de mañana
  • 2 semanas de lunes
  • de mayo de 25 de el próximo año

Usted puede entonces encubrir el resultado en diferentes d Comó formatos o use la API para manipular aún más la fecha.

Cuestiones relacionadas