2009-06-16 35 views
18

Có trình phân tích cú pháp ngôn ngữ tự nhiên cho ngày/giờ trong javascript không?Có trình phân tích ngôn ngữ tự nhiên cho ngày/giờ trong javascript không?

+0

Rất giống với bài khác của bạn http://stackoverflow.com/questions/1003330/is-there-a-natural-language-parser-for-date-times-in-coldfusion Tại sao không chỉ nói javascript hoặc Cold Fusion? – samoz

+2

Một là giải pháp phía khách hàng, một là phía máy chủ. Tôi cảm thấy rằng cố gắng kết hợp chúng sẽ dẫn đến 3 câu hỏi: 1. Câu nào tốt hơn? 2. Giải pháp phía khách hàng tốt nhất là gì? 3.Whats giải pháp phía máy chủ tốt nhất? –

Trả lời

19

SugarJS hỗ trợ phân tích cú pháp ngôn ngữ tự nhiên của ngày và giờ.

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 vào năm tiếp theo

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

+3

SugarJS là tốt hơn, đặc biệt là khi xử lý các trường hợp bao gồm cả ngày và giờ. – Haozhun

+0

Tôi hoàn toàn đồng ý với @Haozhun.Tôi đã sử dụng MomentJS, DateJS và SugarJS trước đây nhưng IMO sau này là tốt nhất ở NLP. –

8

Date.js thỏa mãn nhu cầu của bạn không? Hay bạn đang tìm cái gì khác?

+1

Tôi thấy rằng, nhưng mã nguồn làm tôi sợ, ở nhiều cấp độ. Tôi đã hy vọng cho một cái gì đó tích hợp với một trong những thư viện javascript 'hiện đại'. –

+0

Điều gì khiến bạn sợ hãi, phần mở rộng của các đối tượng gốc? Hay cái gì khác? – Nosredna

+1

trên bề mặt, thiếu định dạng và/hoặc thiếu phiên bản phát triển và phiên bản sản xuất. Nó cũng không phải là một dự án tích cực, có thể không liên quan đến tất cả mọi người. –

-5

Bạn có thể sử dụng bản dịch datepicker jQuery, nhận số ngày và tháng và chọn ngày từ ngày trong ngày.

Bạn có thể thêm giá trị cho đối tượng này và bạn có thể tải xuống tối đa 60 ngôn ngữ mà tôi nghĩ. (Đối tượng bên dưới không hoàn chỉnh, tôi đã xóa một số mã để đơn giản hóa nó).

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

Bây giờ có được ngày và tháng số

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

Điều này không trả lời được câu hỏi. OP yêu cầu một trình phân tích cú pháp *, tức là một hàm nhận một chuỗi như '23/02/1945 'hoặc' thứ hai tới 'và trả về một đối tượng 'Ngày'. – bfontaine

17

tôi đã phát triển một thư viện nhỏ gọi là chrono cho ngày phân tích cú pháp trong Javascript quá. Tôi cũng thêm tính năng phân tích phạm vi ngày (chẳng hạn như '12 tháng 11 - 13 tháng 12 năm 2012 ')

Bạn có thể đăng ký here.

+3

Bạn có NLP tốt nhất cho thời gian tôi đã tìm thấy cho đến nay trong JavaScript. Cho đến nay xếp hạng sẽ là: # 1 chrono, # 2 sugarjs, # 3 datejs. Mẹo: Tôi đề nghị bạn đổi tên nó thành Chronojs để cung cấp cho nó một cái tên dễ tìm kiếm và khác biệt hơn. –

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