Cách lấy ngày từ trình chọn ngày giao diện người dùng jQuery


85

Tôi muốn lấy ngày từ trình chọn ngày bất cứ khi nào người dùng chọn ngày trong trình chọn ngày trong giao diện người dùng jQuery và nhấp vào nút trên biểu mẫu.

Tôi cần lấy ngày, tháng và năm của ngày họ chọn. Làm cách nào để lấy giao diện người dùng jQuery biểu mẫu ngày?

Câu trả lời:


130

Sử dụng

var jsDate = $('#your_datepicker_id').datepicker('getDate');
if (jsDate !== null) { // if any date selected in datepicker
    jsDate instanceof Date; // -> true
    jsDate.getDate();
    jsDate.getMonth();
    jsDate.getFullYear();
}

Đó có phải là cách để chạy bất kỳ phương thức nào trên kiểu dữ liệu Ngày không? Ý tôi là, getDate, getMonth, getFullYear, v.v.?
Ajeeb.KP

Sau khi gọi getDate trên datepicker bạn sẽ nhận được Date () đối tượng js mà sau đó có thể được sử dụng để gọi getDate, getMonth, getFullYear vv
CoolEsh

nếu chúng ta in biến jsDate thì nó sẽ cung cấp cho chúng ta một cái gì đó như thế này vào Thứ Hai, ngày 24 tháng 8 năm 2020 00:00:00 GMT + 0530 (Giờ Chuẩn Ấn Độ), bây giờ chúng ta có thể áp dụng phương thức getDate, getMonth, getFullYear trên jsDate.
Laveena

87

Bạn có thể truy xuất ngày bằng cách sử dụng hàm getDate:

$("#datepicker").datepicker( 'getDate' );

Giá trị được trả về dưới dạng một đối tượng JavaScript Date.

Nếu bạn muốn sử dụng giá trị này khi người dùng chọn ngày, bạn có thể sử dụng sự kiện onSelect:

$("#datepicker").datepicker({
   onSelect: function(dateText, inst) { 
      var dateAsString = dateText; //the first parameter of this function
      var dateAsObject = $(this).datepicker( 'getDate' ); //the getDate method
   }
});

Tham số đầu tiên trong trường hợp này là Ngày được chọn dưới dạng Chuỗi. Sử dụng parseDate để chuyển đổi nó thành Đối tượng ngày JS.

Xem http://docs.jquery.com/UI/Datepicker để biết toàn bộ tài liệu tham khảo DatePicker giao diện người dùng jQuery.


Giải pháp tốt nhất vì không có biến toàn cầu của đối tượng ngày là cần thiết
Rashid

24

Hãy thử điều này, hoạt động giống như sự quyến rũ, cung cấp cho ngày bạn đã chọn. biểu mẫu gửi đi cố gắng lấy giá trị này: -

var date = $("#scheduleDate").datepicker({ dateFormat: 'dd,MM,yyyy' }).val();

Tham khảo tại đây



1

Đôi khi rất nhiều rắc rối với nó. Trong giá trị thuộc tính của dữ liệu trình chọn dữ liệu là 28-06-2014, nhưng trình chọn ngày hiển thị hoặc hôm nay hoặc không có gì. Tôi đã quyết định nó theo cách như vậy:

<input type="text" class="form-control datepicker" data-value="<?= date('d-m-Y', (!$event->date ? time() : $event->date)) ?>" value="<?= date('d-m-Y', (!$event->date ? time() : $event->date)) ?>" />

Tôi đã thêm vào đầu vào của thuộc tính datapicker data-value, bởi vì nếu gọi jQuery (this) .val () OR jQuery (this) .attr ('value') - không có gì hoạt động. Tôi đã quyết định init trong chu kỳ mỗi trình kiểm tra dữ liệu và lấy giá trị của nó từ giá trị dữ liệu thuộc tính:

 $("form .datepicker").each(function() {
        var time = jQuery(this).data('value');
        time = time.split('-');
        $(this).datepicker('setDate', new Date(time[2], time[1], time[0], 0, 0, 0));
    });

và nó hoạt động tốt =)


điều này sẽ chỉ hoạt động nếu định dạng ngày của bạn là dmY .. nếu bạn có mdY hoặc bất kỳ định dạng nào khác, bạn đã sẵn sàng!
Mohamed Nuur

0

Câu trả lời của NamingException đã làm việc cho tôi. Ngoại trừ tôi đã sử dụng

var date = $("#date").dtpicker({ dateFormat: 'dd,MM,yyyy' }).val()

datepickerkhông hoạt động nhưng dtpickerđã làm.

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.