2012-07-09 28 views
5

Tôi cần phải tạo một lựa chọn thời gian "từ ... đến" và tạo ra 2 thành phần TimePicker cho điều đó. Bởi vì cơ sở dữ liệu đằng sau nó đã tồn tại từ những năm và sử dụng một định dạng 24 giờ, trong mã của tôi, tôi đang thiếtTimePicker không cho phép "24:00"?

tpOpenFrom.setIs24HourView(true); 
tpOpenTo.setIs24HourView(true); 

Vấn đề của tôi bây giờ mà như có vẻ như, "24:00" không thể được chọn như một "to:" giá trị, như sau "23" (: 00), thành phần chuyển "trở lại" thành "00" (: 00), làm cho nó không thể tìm ra liệu người dùng quên thực hiện một lựa chọn thực tế, như nếu "09:00" được nhập là "từ" thời gian và "00:00" là thời gian "thành". Hoặc nếu lựa chọn "00:00" đến "00:00" đã được thực hiện: có người dùng quên nhập bất kỳ điều gì hoặc anh ta định định nghĩa "mở cửa suốt ngày đêm"?

Ở chế độ 24 giờ, TimePicker thực sự nên cho phép nhập 24:00. Hệ thống đồng hồ 24 giờ trong ISO 8601 xác định nửa đêm là trường hợp đặc biệt, có thể được gọi là cả "00:00" và "24:00", vì vậy TimePicker nên cho phép giờ được đặt thành 24 và tự động chặn phút tới 00.

Có ai có ý tưởng làm cách nào để đạt được điều đó bằng cách sử dụng TimePicker không?

+0

tự mình gặp phải vấn đề tương tự; nhưng dường như mọi TimePicker trên hành tinh đều bỏ qua định dạng ISO.201 5.3.2 của 'nửa đêm'. Như bạn nói, 00:00 và 24:00 là cả hai giá trị hợp lệ trong biểu diễn dữ liệu theo thời gian, theo ISO. – Tim

Trả lời

2

Tôi đã gặp sự cố tương tự với trình khởi động thời gian khởi động nhưng không khó thực hiện. Tôi đang sử dụng timepicker của Joris de Wit (http://jdewit.github.io/bootstrap-timepicker/).

tìm kiếm "24" và thay thế tất cả các lần xuất hiện bằng "25", sau đó tìm kiếm "23" trong bootstrap-timepicker.js và thay thế chúng bằng "24".

nếu bạn muốn cho phép thời gian như 24:01, .., 24:59, bạn đã hoàn tất. Nếu bạn chỉ muốn chấp nhận 24:00 nhưng không phải là 24 với phút, hãy đi đến dòng 133, nơi hàm getTime là.

Đặt đoạn mã sau trước sự trở lại hiện tại (nhưng không xóa nó):

if (this.hour == 24 && this.minute != 0) { 
    this.setTime('00:' + this.minute); 
    return '00:' + this.minute; 
} 

này sẽ chuyển đổi bất kỳ 24: Thời gian XX đến 00: XX.

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