我正在尝试使用本地法语的Datatable的时刻插件。并且它不起作用,日期字段不是作为日期排序而是作为字符串排序。 我在javaconsole中看到的是,在Datatable的fnSort函数中,aoData中每个元素的aSortData仍然是“17février201610:02:29”,而不是转换为相关的整数。 我首先尝试使用不同的javascript文件,然后使用网络版本,但在两种情况下都失败了。
这是我的javascript代码
<script src="./my_files/jquery-1.11.1.js" type="text/javascript"></script>
<script type="text/javascript" charset="utf8" src="http://cdn.datatables.net/1.10.12/js/jquery.dataTables.js"></script>
<script type="text/javascript" charset="utf8" src="http://cdnjs.cloudflare.com/ajax/libs/moment.js/2.8.4/moment-with-locales.min.js"></script>
<script type="text/javascript" charset="utf8" src="http://cdn.datatables.net/plug-ins/1.10.11/sorting/datetime-moment.js"></script>
<script type="text/javascript">
$(document).ready( function () {
$.fn.dataTable.moment( 'D MMMM YYYY hh:mm:ss', 'fr');
$('#data-table-logs').DataTable();
});
</script>
以下是我表格中的数据示例。
<tbody>
<tr>
<td>17 février 2016 10:02:29</td>
<td>5111</td>
<td>Jeromrm ghhh</td>
<td>Entrant</td>
</tr>
<tr>
<td>10 février 2016 12:02:10</td>
<td>5111</td>
<td>Jeromrm ghhh</td>
<td>Entrant</td>
</tr>
<tr>
<td>27 janvier 2016 16:01:17</td>
<td>5111</td>
<td>Jeromrm ghhh</td>
<td>Entrant</td>
</tr>
<tr>
<td>19 mai 2016 16:05:53</td>
<td>5411</td>
<td>jdsn Reference</td>
<td>Sortant</td>
</tr>
<tr>
<td>30 mars 2016 14:03:06</td>
<td>5111</td>
<td>Jeromrm ghhh</td>
<td>Sortant</td>
</tr>
<tr>
<td>14 mars 2016 12:03:27</td>
<td>5111</td>
<td>Jeromrm ghhh</td>
<td>Sortant</td>
</tr>
在我看来,我完全按照https://datatables.net/blog/2014-12-18的程序进行了操作,只不过我已经使用了当地时刻而不是时刻。
有人对此有所了解吗?
这是完整的HTML
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>My Site</title>
<script src="http://code.jquery.com/jquery-1.11.1.js" type="text/javascript"></script>
<link rel="stylesheet" type="text/css" href="http://cdn.datatables.net/1.10.12/css/jquery.dataTables.css">
<script type="text/javascript" charset="utf8" src="http://cdn.datatables.net/1.10.12/js/jquery.dataTables.js"></script>
<script type="text/javascript" charset="utf8" src="http://cdnjs.cloudflare.com/ajax/libs/moment.js/2.8.4/moment-with-locales.min.js"></script>
<script type="text/javascript" charset="utf8" src="http://cdn.datatables.net/plug-ins/1.10.11/sorting/datetime-moment.js"></script>
<script type="text/javascript">
$(document).ready( function () {
$.fn.dataTable.moment( 'D MMMM YYYY hh:mm:ss', 'fr');
$('#data-table-logs').DataTable();
});
</script>
</head>
<body class="">
<div class="container">
<div class="main-content">
<div class="row">
<div id="main-content-block" class="col-xs-12">
<div>
<table class="display" id="data-table-logs">
<thead>
<tr>
<th>Durée de l'appel</th>
<th>Autre partie</th>
<th>Nom</th>
<th>Type d'appel</th>
</tr>
</thead>
<tbody>
<tr>
<td>17 février 2016 10:02:29</td>
<td>5111</td>
<td>Jeromrm ghhh</td>
<td>Entrant</td>
</tr>
<tr>
<td>10 février 2016 12:02:10</td>
<td>5111</td>
<td>Jeromrm ghhh</td>
<td>Entrant</td>
</tr>
<tr>
<td>27 janvier 2016 16:01:17</td>
<td>5111</td>
<td>Jeromrm ghhh</td>
<td>Entrant</td>
</tr>
<tr>
<td>19 mai 2016 16:05:53</td>
<td>5411</td>
<td>jdsn Reference</td>
<td>Sortant</td>
</tr>
<tr>
<td>30 mars 2016 14:03:06</td>
<td>5111</td>
<td>Jeromrm ghhh</td>
<td>Sortant</td>
</tr>
<tr>
<td>14 mars 2016 12:03:27</td>
<td>5111</td>
<td>Jeromrm ghhh</td>
<td>Sortant</td>
</tr>
<tr>
<td>19 février 2016 18:02:31</td>
<td>5111</td>
<td>Jeromrm ghhh</td>
<td>Sortant</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</body>
提前感谢, 奥利弗
答案 0 :(得分:0)
为此,所有值都必须通过提供的格式进行解析。你犯了一个简单的错误,就是你有public class FactoryMethod {
@Factory(dataProvider="dataSuite")
public Object[] createInstances(int id, String TestSuite) {
return new Object[] {new FactoryMethodClass(id, TestSuite)};
}
@DataProvider(name="dataSuite")
public static Object[][] dataSuite() {
Object[][] dataArray = {{1, "TEST SUITE 1"},{2, "TEST SUITE 2"}};
return dataArray;
}
}
public class FactoryMethodClass {
private static int SHAREDcounter = 1000;
private int id = 100;
private String TestSuite = "";
public FactoryMethodClass(){}
public FactoryMethodClass(int id, String TestSuite) {this.id = id; this.TestSuite = TestSuite;}
@DataProvider(name="dataRecords")
public static Object[][] dataPro() {
Object[][] dataArray = {{1, "TEST RECORD 1"}, {2, "TEST RECORD 2"}, {3, "TEST RECORD 3"}};
return dataArray;
}
@Test (dataProvider="dataRecords")
public void firstDataPro(int id, String TestRecord) {
System.out.println("Running Test Record " + TestRecord + " of Test Suite " + TestSuite + " with Value = " + SHAREDcounter++);
Assert.assertTrue(true);
}
}
(12小时制的小时)而不是hh
(24小时制的小时)。由于数据包含大于12的小时数,因此它不匹配,因此整个列被视为字符串。
只需更改脚本:
HH
要:
$.fn.dataTable.moment( 'D MMMM YYYY hh:mm:ss', 'fr');