Jquery datatables sorting
Помогите пожалуйста, в таблице, по которой я строю jquery datatable, есть поле birth_date в формате yyyy-mm-dd
Мне нужно, чтобы в колонке День рождения отображался день + название месяца, но при сортировке упорядочивалось по ( месяц рождения + '.' + день), например 01.30 В документации по Datatables сказано, что если в функции render прописать if ( type === "sort"){ myStuff = 'aazazaa'; return myStuff; }то колонка будет сортироваться по myStuff, a не по data Но что то нихрена не работает так) Всегда сортируется только по полной дате рождения, т.е . birth_date { "sortable": true, data:'birth_date', "title": "День рождения", "render": function (data, type, row, meta) { if (!data) { return ''; } var date = new Date(data); var month = date.getMonth(); var day = date.getDate(); var birthday = day + ' ' + monthsLocalised[month]; if (type === "filter" || type === "sort" || type === "type") { //При сортировке должно упорядочивать по месяцу, но упорядочивает по полной дате рождения return month; } return '<div class = "scale-div1">' + birthday + '</div>'; } }, |
dataTables birthday
Ramundo,
<!DOCTYPE html> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> </style> <script src="https://code.jquery.com/jquery-3.3.1.js"></script> <link rel="stylesheet" href="https://cdn.datatables.net/1.10.20/css/jquery.dataTables.min.css"> <script src="https://cdn.datatables.net/1.10.20/js/jquery.dataTables.min.js"></script> <script> $(function() { $('#example').DataTable( { "order": [[ 4, "asc" ]], "columnDefs": [ { "render": function ( data, type, row ) { var date = new Date(data); var month = date.getMonth(); var day = date.getDate(); var birthday = date.toLocaleDateString('ru', {month: 'long', day: 'numeric'}); if (type === "filter" || type === "sort" || type === "type") return month * 100 + day; return birthday; }, "targets": 4 }, { "visible": false, "targets": [ 1, 3 ] } ] } ); }); </script> </head> <body> <table id="example" class="display" style="width:100%"> <thead> <tr> <th>Name</th> <th>Position</th> <th>Office</th> <th>Age</th> <th>Start date</th> <th>Salary</th> </tr> </thead> <tbody> <tr> <td>Tiger Nixon</td> <td>System Architect</td> <td>Edinburgh</td> <td>61</td> <td>2011-04-25</td> <td>$320,800</td> </tr> <tr> <td>Garrett Winters</td> <td>Accountant</td> <td>Tokyo</td> <td>63</td> <td>2011-07-25</td> <td>$170,750</td> </tr> <tr> <td>Ashton Cox</td> <td>Junior Technical Author</td> <td>San Francisco</td> <td>66</td> <td>2009-01-12</td> <td>$86,000</td> </tr> <tr> <td>Cedric Kelly</td> <td>Senior Javascript Developer</td> <td>Edinburgh</td> <td>22</td> <td>2012-03-29</td> <td>$433,060</td> </tr> <tr> <td>Airi Satou</td> <td>Accountant</td> <td>Tokyo</td> <td>33</td> <td>2008-11-28</td> <td>$162,700</td> </tr> <tr> <td>Brielle Williamson</td> <td>Integration Specialist</td> <td>New York</td> <td>61</td> <td>2012-12-02</td> <td>$372,000</td> </tr> <tr> <td>Herrod Chandler</td> <td>Sales Assistant</td> <td>San Francisco</td> <td>59</td> <td>2012-08-06</td> <td>$137,500</td> </tr> <tr> <td>Rhona Davidson</td> <td>Integration Specialist</td> <td>Tokyo</td> <td>55</td> <td>2010-10-14</td> <td>$327,900</td> </tr> <tr> <td>Colleen Hurst</td> <td>Javascript Developer</td> <td>San Francisco</td> <td>39</td> <td>2009-09-15</td> <td>$205,500</td> </tr> <tr> <td>Sonya Frost</td> <td>Software Engineer</td> <td>Edinburgh</td> <td>23</td> <td>2008-12-13</td> <td>$103,600</td> </tr> <tr> <td>Jena Gaines</td> <td>Office Manager</td> <td>London</td> <td>30</td> <td>2008-12-19</td> <td>$90,560</td> </tr> <tr> <td>Quinn Flynn</td> <td>Support Lead</td> <td>Edinburgh</td> <td>22</td> <td>2013-03-03</td> <td>$342,000</td> </tr> <tr> <td>Charde Marshall</td> <td>Regional Director</td> <td>San Francisco</td> <td>36</td> <td>2008-10-16</td> <td>$470,600</td> </tr> </tbody> <tfoot> <tr> <th>Name</th> <th>Position</th> <th>Office</th> <th>Age</th> <th>Start date</th> <th>Salary</th> </tr> </tfoot> </table> </body> </html> |
Часовой пояс GMT +3, время: 03:03. |