2013-07-03 31 views
40

Có thể định dạng ngày với jQuery UI Datepicker để hiển thị giờ, phút và giây không?Làm thế nào để định dạng ngày với giờ, phút và giây khi sử dụng jQuery UI Datepicker?

Đây là mockup hiện tại của tôi:

$(function() { 
 
    $('#datepicker').datepicker({ dateFormat: 'yyy-dd-mm HH:MM:ss' }).val(); 
 
});
<html> 
 
<head> 
 
    <link rel="stylesheet" href="http://code.jquery.com/ui/1.9.2/themes/base/jquery-ui.css"> 
 
    <title>snippet</title> 
 
</head> 
 
<body> 
 

 
    <input type="text" id="datepicker"> 
 

 
    <script src="https://code.jquery.com/jquery-1.12.4.min.js"></script> 
 
    <script src="https://code.jquery.com/ui/1.9.2/jquery-ui.min.js"></script>

Khi tôi gọi .datepicker({ dateFormat: 'yyy-dd-mm HH:MM:ss' }) giá trị trả về là:

201313-07-03 HH: Tháng Bảy: ss

Đây là a JSFiddle.

+1

Bộ chọn ngày chỉ cho phép bạn chọn ngày, không phải thời gian, vì vậy việc định dạng giờ, phút và giây sẽ không được hỗ trợ. Bạn chỉ có thể tự thêm 00:00:00. –

+1

'var curTime = new Date()'. Bạn có thể sử dụng các thư viện như [moment] (http://momentjs.com/) để định dạng theo bất kỳ cách nào bạn muốn. –

Trả lời

36
$("#datepicker").datepicker("option", "dateFormat", "yy-mm-dd "); 

Đối với bộ chọn thời gian, bạn nên thêm timepicker vào Datepicker và nó sẽ được định dạng bằng một lệnh tương đương.

EDIT

Sử dụng cái này mà mở rộng jQuery UI datepicker. Bạn có thể nhận cả ngày và giờ.

http://trentrichardson.com/examples/timepicker/

+0

tôi thử nhiều hơn để tìm ra câu trả lời về điều này nhưng cuối cùng tôi tìm thấy câu trả lời của bạn trong last.i muốn đề nghị bạn trả lời câu trả lời của đối tượng của datepicker vì vậy tôi sửa đổi trong mã của tôi như thế này. Cảm ơn bạn ... $ ("# datepicker ("tùy chọn", "dateFormat", "dd-mm-yy"). val(); – Ashish4434

+0

Còn ngày và giờ? Dường như không cho phép định dạng này: 'yyyy-mm-dd HH: mm: ss' trong liên kết thư viện mà bạn đã cung cấp. – Si8

33

thử này fiddle

$(function() { 
$('#datepicker').datepicker({ 
    dateFormat: 'yy-dd-mm', 
    onSelect: function(datetext){ 

     var d = new Date(); // for now 

     var h = d.getHours(); 
     h = (h < 10) ? ("0" + h) : h ; 

     var m = d.getMinutes(); 
     m = (m < 10) ? ("0" + m) : m ; 

     var s = d.getSeconds(); 
     s = (s < 10) ? ("0" + s) : s ; 

     datetext = datetext + " " + h + ":" + m + ":" + s; 

     $('#datepicker').val(datetext); 
    } 
}); 
}); 
+1

giải pháp tuyệt vời, nhưng nó không thêm số 0 đứng đầu. Bạn có thể thêm chúng như sau: '('0' + d.getHours()). Slice (-2)' Và tốt hơn là áp dụng giá trị mới cho '$ (this)' thay vì '$ (' #datepicker ') '. Nó có thể hữu ích nếu bạn có nhiều hơn một phần tử trong bộ chọn, như '$ ('. Datepicker'). Datepicker (...)' – Amazzing

+0

làm sao chúng ta cũng có thể hiển thị AM/PM? –

+0

Làm việc cho tôi cảm ơn :) –

27

Sử dụng jQuery UI kết hợp với các plugin DateTimePicker tuyệt vời từ http://trentrichardson.com/examples/timepicker/

Bạn có thể chỉ định DateFormatTIMEFORMAT

$('#datepicker').datetimepicker({ 
    dateFormat: "yy-mm-dd", 
    timeFormat: "hh:mm:ss" 
}); 
+0

Hiện tại, điều này dường như không hoạt động – dctucker

+0

@dctucker vấn đề là gì? Đây thực sự là một câu trả lời cũ hơn. Tôi có thể cập nhật nó nếu bạn có thể cho tôi biết những gì đang xảy ra? – Notflip

+1

tác phẩm của nó dành cho tôi, cảm ơn –

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