Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 表排序器按日期周期/日期格式dd.mm.yyyy-dd.mm.yyyy排序_Jquery_Sorting_Tablesorter - Fatal编程技术网

Jquery 表排序器按日期周期/日期格式dd.mm.yyyy-dd.mm.yyyy排序

Jquery 表排序器按日期周期/日期格式dd.mm.yyyy-dd.mm.yyyy排序,jquery,sorting,tablesorter,Jquery,Sorting,Tablesorter,我有下表: <?php $reqSQL = "SELECT * FROM data_cursanti , clients WHERE start_course > DATE_SUB(now(), INTERVAL 12 MONTH) ORDER BY data_cursanti.name ASC "; $result = mysqli_query($conexiune, $reqSQL) or die("Error: " . mysqli_error($c

我有下表:

    <?php 
    $reqSQL = "SELECT * FROM data_cursanti , clients WHERE  start_course > DATE_SUB(now(), INTERVAL 12 MONTH) ORDER BY data_cursanti.name ASC ";
    $result = mysqli_query($conexiune, $reqSQL) or die("Error: " . mysqli_error($conexiune)); // sql query for results than the table
    $counter = 1; // for rows counting
    echo '<table id="users" class="tablesorter">
    <thead>
    <tr>
    <th width="3%">No.</th>
    <th width="15%">Name</th>
    <th width="10%">Company</th>
    <th width="7%">Course</th>
    <th width="10%">Course Period</th>
    </tr>
    </thead>
    <tbody>'
    while ($row = mysqli_fetch_array($result)) {
    $date1 = date('d.m.Y', strtotime($row['start_course']));
    $date2 = date('d.m.Y', strtotime($rand['end_course']));
    echo
    '<tr>
    <td width="3%">'.$counter.'</td>
    <td width="15%">'.$row['name'].'</td>
    <td width="10%">'.$row['company_name'].'</td>
    <td width="7%">'.$row['course_type'].'</td>
    <td width="10%">'.$date1.' - '.$date2.'</td>
    </tr>'
    $counter++;
    } //end while loop
    echo '</tbody>
    </table>'; //close table
问题是,表是按第一个日期的dd(天)部分排序的,而不是我希望的月份!。有什么想法吗?我做错了什么?有人可以修改我的代码,按照第一个日期的mm(月)值对表数据进行排序吗?我对javascript几乎一无所知。。。谢谢


LE:我还尝试使用mottie在第一个答案中提供的解决方案,但当我在脚本中添加4:{sorter:'date range'}段代码时,该表出现故障,无法对任何内容进行排序

问题在于,这个问题中的日期是由句点分隔的,而另一个问题的regexp使用的是只查找前斜杠或空格的regex()

此regexp将使用以“
-
”、“
/
”、“
”或“
”(空格)分隔的mm-dd-yyyy日期

此外,
分拣机
设置需要针对最后一行:

$("table").tablesorter({
    headers: {
        4: {
            sorter: 'date-range'
        }
    }
});

我不知道这个插件,但是看到你的代码,我发现解析器类型被设置为“text”。您是否必须将其定义为“日期”才能使排序正常工作(假设“日期”是此插件中的合法标识符)?似乎是个好主意。。。但是din没有改变排序结构中的任何东西。。。仍然是按天排序而不是按月排序…好的,这在演示页面上有效,但在我的实际站点上不起作用。在按照您的建议更改了代码之后,我仍然按照天而不是月份对日期进行排序。我将日期以yyyy-mm-dd格式存储在mysql数据库中,并通过strotime和如下变量在表中调用它们:while($row=mysqli\u-fetch\u-array($rezultat))$date1=date('d.m.Y',strotime($row['start\u-course')$日期2=日期('d.m.Y',标准时间($row['end_course']);和echo'//表的其余部分代码'$date1'.-'.$date2'.//兴趣行//结束表'每一行都是一个新表(
echo'
在while循环中)?表格HTML是否与问题中的内容不匹配?您可以修改演示以复制您遇到的问题吗?首先是html中的列标题,php代码中带有echo的while循环,php关闭并返回html。我会尽快修改演示,仍然需要弄清楚如何在那里设置db!感谢您的耐心,我对php、mysql比较陌生,对jscript也很陌生。在这里修改我的问题,也许这会让我更了解我做错了什么!谢谢,我在更新中没有看到任何问题,但我对php不太了解。。。只要您之前发布的HTML是结果,那么就应该可以了。javascript看起来不错。您是否在浏览器的控制台(按F12,然后按console tab)中看到任何错误?您使用的是什么版本的tablesorter?jQuery的哪个版本?
var dates = s.replace(/(\d{1,2})[-./\s](\d{1,2})[-./\s](\d{4})/g, "$2/$1/$3").split(' - ')
$("table").tablesorter({
    headers: {
        4: {
            sorter: 'date-range'
        }
    }
});