Bộ chọn ngày / giờ của jQuery [đã đóng]


245

Tôi đã tìm kiếm một plugin jQuery tốt có thể xử lý cả ngày và giờ. Giao diện người dùng cốt lõi DatePickerrất tuyệt, nhưng thật không may, tôi cũng cần phải có thời gian.

Tôi đã tìm thấy một vài bản hack để DatePicker hoạt động theo thời gian, nhưng tất cả chúng đều có vẻ không phù hợp và Google sẽ không tạo ra bất cứ điều gì tốt đẹp.

Có một plugin jQuery tốt để chọn ngày và giờ trong một điều khiển UI với giao diện có thể sử dụng không?


Tôi khá chắc chắn rằng ví dụ của tôi ít gây nhầm lẫn và thân thiện với người dùng hơn. Có những ưu và nhược điểm của cả hai.
Michael Stone

Câu trả lời:


251

Cho đến nay, tùy chọn bộ chọn DateTime đẹp nhất và đơn giản nhất là http://trentrichardson.com/examples/timepicker/ .

Nó là một phần mở rộng của Datepicker jQuery UI vì vậy nó sẽ hỗ trợ các chủ đề tương tự cũng như nó hoạt động rất giống nhau, cú pháp tương tự, v.v. Điều này nên được đóng gói với imo UI UI.


3
Tôi đã sử dụng cái này và tôi YÊU nó.
Sonny

3
Tôi thích điều này, nhưng nó vẫn còn RẤT lỗi.
Alastair Forge

11
"Lỗi RẤT"? Khó khăn. Tôi sử dụng nó trong mã sản xuất, và đã được một lúc rồi. Nó cũng tích cực phát triển.
Sonny

7
@Sonny: cho dù bạn sử dụng nó trong sản xuất không có liên quan đến việc nó có lỗi hay không. Bạn có thể không thấy lỗi của nó bởi vì bạn không làm những điều với nó phơi bày chúng, mà có lẽ Alastair là. Mặt khác, anh ta đã không đưa ra bất kỳ bằng chứng nào cho tuyên bố của mình, vì vậy tôi không có xu hướng quá nghiêm túc ...
iconoclast

18
Vấn đề lớn nhất của tôi với plugin này là giao diện người dùng: tại sao tôi muốn sử dụng thanh trượt, thanh ngang ở đó!, Để nhập thời gian!? Nó nhìn và cảm thấy rất khó xử với tôi. Tôi đã có kinh nghiệm rất nhiều lần với các thanh trượt mà tôi không thể đạt được số mà tôi muốn (lặp đi lặp lại một chút sau đó một chút) và cuối cùng tôi gõ nó. Bàn phím thường là cách dễ nhất để nhập một giá trị số chính xác. Nếu bạn muốn một phương thức nhập liệu trực quan, đồng hồ là phương thức bình thường theo thời gian, không phải là thanh trượt. Khó thực hiện hơn, nhưng thực sự có thể hữu ích (miễn là có thể nhập bàn phím).
iconoclast

46

@David, cảm ơn lời khuyên! @fluid_chnes, tôi vừa phát hành phiên bản Any + Time (TM) 3.x sử dụng jQuery thay vì Prototype và có giao diện được cải thiện nhiều, vì vậy tôi hy vọng nó hiện đáp ứng nhu cầu của bạn:

http://www.ama3.com/anytime/

Bất kỳ vấn đề, xin vui lòng cho tôi biết thông qua liên kết bình luận trên trang web của tôi!


6
Phiên bản 4.x (TM) 4.x hiện có sẵn! Bản phát hành mới hỗ trợ TIME ZONES (tìm THAT trong bất kỳ bộ chọn nào khác!) Cũng như bộ chọn / xâu chuỗi jQuery, dễ gỡ bỏ (tránh rò rỉ bộ nhớ!) Và nhiều cải tiến khác. Vui lòng cho nó đi xe, và nếu bạn có bất kỳ vấn đề hoặc đề xuất nào, hãy cho tôi biết qua trang bình luận trên trang web của tôi.
Andrew M. Andrew III

4
Bất kỳ + Thời gian có vẻ khá trơn tru. Tôi thích nó.
Zack Peterson

Chỉ cần triển khai AnyTime trong vài phút trên ứng dụng Rails. Hoạt động hoàn hảo.
Gwyn Morfey

Tôi chỉ chọn công cụ chọn AnyTime làm công cụ chọn lựa cho ứng dụng JSF của mình! Cảm ơn cho sản phẩm tốt đẹp, tiếp tục công việc tốt!
Arg

Any + Time sẽ thêm một div ẩn mới cho UI cho mọi đầu vào Any + Time (không giống như công cụ hẹn giờ của UI JQUery sử dụng lại giao diện người dùng div ẩn), điều này làm cho hiệu năng giảm xuống rất nhiều trong MSIE6 được thiết kế xấu. Vì vậy, không sử dụng Any + Time nếu bạn cần hỗ trợ MSIE6!
Eduardo

14

Theo quan điểm của tôi, ngày và giờ nên được xử lý như hai hộp đầu vào riêng biệt để nó có thể sử dụng và hiệu quả nhất cho người dùng nhập. Hãy để người dùng nhập một thứ tại một thời điểm là một nguyên tắc tốt, imho.

Tôi sử dụng UI DatePicker lõi và bộ chọn thời gian sau.

Cái này được lấy cảm hứng từ một Lịch Google sử dụng:

jQuery timePicker :
ví dụ: http://labs.perifer.se/timedatepicker/
dự án trên github: https://github.com/perifer/timePicker

Tôi thấy nó là tốt nhất trong số tất cả các lựa chọn thay thế. Người dùng có thể nhập nhanh, trông sạch sẽ, đơn giản và cho phép người dùng nhập thời gian cụ thể xuống từng phút.

PS: Theo quan điểm của tôi: thanh trượt (được sử dụng bởi một số bộ chọn thời gian thay thế) mất quá nhiều lần nhấp và yêu cầu độ chính xác của chuột từ người dùng (làm cho đầu vào chậm hơn).


Ngày giao diện người dùng cốt lõi: jqueryui.com/demos/datepicker
Magne

Điều này sẽ giết chết các lợi ích ràng buộc mô hình của C # MVC cho trường đó
Serj Sagan

13

Trải nghiệm tốt nhất của tôi với một người hẹn hò là với AnyTime dựa trên nguyên mẫu . Tôi biết đó không phải là jQuery, nhưng nó vẫn có thể là sự thỏa hiệp cho bạn. Tôi biết hoàn toàn không có nguyên mẫu, và nó vẫn đủ dễ để làm việc với.

Một cảnh báo tôi đã tìm thấy: nó không tương thích về phía trước trên một số trình duyệt. Đó là, nó không hoạt động với phiên bản nguyên mẫu mới hơn trên Chrome.


1
Nếu tôi có thể sử dụng nguyên mẫu thì đây không phải là vấn đề, thật không may, chúng tôi bị mắc kẹt với jQuery cho ứng dụng này.
Chelsea

7
Chỉ cần một bản cập nhật - AnyTime 3 hiện hoạt động với jQuery.
Jaxidian

Tôi đã không nghĩ về điều này trong nhiều tháng và nhiều tháng. Nhưng dự án cá nhân của tôi muốn một số cập nhật và tôi đã sẵn sàng để ném vào một số trò đùa. Tôi nghĩ rằng tôi sẽ thay thế công cụ hẹn hò trong khi tôi làm việc đó vì tôi không cần tất cả các tính năng của Any + Time và nghĩ rằng tôi cũng có thể đi tất cả jQuery. Và bam! Tôi đi qua đây. Thời gian tuyệt vời.
David Berger

Đẹp, mặc dù bộ chọn năm (nhấp <hoặc>) không phù hợp với tôi.
một lập trình viên

7

Chỉ cần thêm vào thông tin ở đây, Dự án Fluid có một bài viết wiki tuyệt vời tổng quan về một số lượng lớn các công cụ chọn ngày và / hoặc thời gian ở đây .


4

Tôi đã nghiên cứu điều này chỉ gần đây và vẫn chưa tìm thấy một công cụ chọn ngày tốt bao gồm cả công cụ chọn thời gian đàng hoàng . Cuối cùng, thứ tôi sử dụng là DatePicker tuyệt vời của Eyecon , với hai lần thả xuống đơn giản theo thời gian. Tôi đã cố gắng sử dụng Timepickr.js , có vẻ như là một cách tiếp cận thực sự tốt đẹp.


3

Tôi đã gặp vấn đề tương tự. Tôi thực sự đã phát triển bằng cách sử dụng lập trình phía máy chủ, nhưng tôi đã tìm kiếm nhanh để thử và giúp bạn và tìm thấy điều này.

Có vẻ ổn, đã không nhìn vào nguồn quá nhiều, nhưng dường như hoàn toàn là JavaScript.

Hãy xem:

http://www.rainforestnet.com/datetimepicker/datetimepicker.htmlm

Đây là liên kết trang demo:

http://www.rainforestnet.com/datetimepicker/datetimepicker-demo.htm

chúc may mắn


Tôi đã sử dụng điều này trong một vài năm. Nó có một chút dài trong răng nhưng hoạt động.
một lập trình viên

1

Đây là một số mã tôi sử dụng để người dùng chọn một datetimepicker, đặt datetime và để datetimepicker khác thêm một phút vào thời điểm đó.

Tôi cần điều này để kiểm soát thuốc tùy chỉnh ....

Dù sao, nghĩ rằng nó có thể giúp đỡ người khác vì tôi không thể tìm thấy câu trả lời bất cứ nơi nào trực tuyến ...

(ít nhất không phải là một câu trả lời đầy đủ)

Hãy nhớ rằng 60000 được thêm vào, thêm một phút. (60 * 1000 mili giây)

$('.frdtPicker').datetimepicker({
        onClose: function(dateText, inst) {
            var endDateTextBox = $('.todtPicker');
            if (endDateTextBox.val() != '') {
                var testStartDate = new Date(dateText);
                var testEndDate = new Date(endDateTextBox.val());
                if (testStartDate > testEndDate) {

                    var testStartDate = new Date(dateText).getTime() + 60000;
                    var testStartDate2 = new Date(testStartDate); 

                    endDateTextBox.datetimepicker('setDate', (new Date(testStartDate2)));
                }
            }
            else {
                var testStartDate = new Date(dateText).getTime() + 60000;
                var testStartDate2 = new Date(testStartDate);
                endDateTextBox.datetimepicker('setDate', (new Date(testStartDate2)));
            }
            $('.frdtPicker').val(dateText); //endDateTextBox.val());

        },
        onSelect: function(selectedDateTime) {
            var start = $(this).datetimepicker('getDate');
            $('.todtPicker').datetimepicker('option', 'minDate', new Date(start.getTime()));
        }
    });

1

Hãy xem các plugin JavaScript sau đây.

Lịch Javascript với ngày và giờ

Tôi đã làm cho nó đơn giản nhất có thể. nhưng nó vẫn còn trong những ngày đầu của nó. Hãy cho tôi biết thông tin phản hồi để tôi có thể cải thiện nó.


1

Không phải jQuery, nhưng nó hoạt động tốt cho một lịch với thời gian: Bộ chọn thời gian ngày JavaScript .

Tôi chỉ ràng buộc sự kiện nhấp để bật lên:

$(".arrival-date").click(function() {
    NewCssCal($(this).attr('id'), 'mmddyyyy', 'dropdown', true, 12);
});

1
Cập nhật liên kết - họ đã di chuyển nó.
bigspiateddog

Tôi đã sử dụng cái đó trong một vài năm, mặc dù tôi đã gọi nó theo cách khác (do đó không nhận ra từ mã của bạn). Tôi đã chuyển sang DatePicker của jquery, vì rừng mưa nhiệt đới trông hơi dài trong răng.
một lập trình viên

0

Tôi thực hiện một chức năng như thế này:

function getTime()
{
    var date_obj = new Date();
    var date_obj_hours = date_obj.getHours();
    var date_obj_mins = date_obj.getMinutes();
    var date_obj_second = date_obj.getSeconds();

    var date_obj_time = "'"+date_obj_hours+":"+date_obj_mins+":"+date_obj_second+"'";
    return date_obj_time;
}

Sau đó, tôi sử dụng công cụ cập nhật giao diện người dùng jQuery như thế này:

$("#selector").datepicker( "option", "dateFormat", "yy-mm-dd "+getTime()+"" );

Vì vậy, tôi nhận được giá trị như thế này: 2010-10-31 12:41:57


đôi khi chúng ta cần xác định thời gian (không sử dụng chức năng getTime)
bungdito

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.