2010-03-02 44 views
6

Tôi đang cố gắng cho phép người dùng nhập giá trị ngày và giờ vào trường nhập. Một số ví dụ có thể bao gồm:Phân tích các giá trị ngày/giờ theo ngôn ngữ tự nhiên thành các chuỗi ngày/giờ được định dạng

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

Làm cách nào để phân tích cú pháp văn bản có thể đọc này thành chuỗi ngày/giờ?

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

Nó có thể được thực hiện phía máy khách bằng cách sử dụng jquery hoặc phải được thực hiện ajax thông qua php?

Cảm ơn trước cho bất kỳ lời khuyên hay những hiểu biết :)

Trả lời

0

Cảm ơn Sinan và vsr. Tôi đã bình chọn cả hai câu trả lời của bạn. Ban đầu tôi rất hào hứng với những gì mà datejs cung cấp, nhưng dường như nó bị hạn chế về khả năng xử lý thời gian ngày ngôn ngữ tự nhiên. Nó không xử lý ngày + thời gian rất tốt.

timeapi.org trông đầy hứa hẹn, nhưng vì nó sử dụng ruby ​​và phiên bản api dựa trên dịch vụ có vẻ không đáng tin cậy lắm.

Tôi đã thử nghiệm với strtotime của php và thấy rằng nó có thể xử lý thời gian ngày ngôn ngữ tự nhiên hơn khá tốt. Sử dụng php cho phép tôi thêm các thuật ngữ ngôn ngữ tự nhiên khác không được hỗ trợ. Vì vậy, có vẻ như tôi sẽ sử dụng ajax để xử lý thời gian ngày ngôn ngữ tự nhiên từ người dùng.

Rất thích nghe thông tin chi tiết của bạn về cách tiếp cận của tôi. :) cảm ơn một lần nữa!

6

Có một mã nguồn mở thư viện javascript làm tất cả những thứ sôi nổi với ngày tháng. Bạn có thể xem http://www.datejs.com/

2

Mặc dù tôi bỏ phiếu cho datejs.com, một tùy chọn khác là timeapi.org.

timeapi.org có API JSONP để chuyển đổi truy vấn ngôn ngữ tự nhiên thành ngày/giờ.

0

Tôi nghĩ rằng đây là một bản sao của Is there a natural language parser for date/times in javascript?

Câu trả lời tôi vừa đưa ra cho câu hỏi đó là dưới đây:

SugarJS hỗ trợ một số phân tích cú pháp ngôn ngữ tự nhiên của ngày tháng và thời gian.

Bạn có thể nhảy với ví dụ sống ở đây: http://sugarjs.com/dates

Ví dụ, nó hỗ trợ các đầu vào sau:

  • một ngày sau khi ngày mai
  • 2 tuần kể từ thứ Hai
  • 25 tháng 5 của năm tiếp theo

Sau đó, bạn có thể chuyển đổi kết quả thành d khác ăn các định dạng hoặc sử dụng API để thao tác thêm ngày.

Các vấn đề liên quan