我正在使用Google图表和PHP创建一个表。表代码是:
google.charts.load('current', {'packages':['table']});
google.charts.setOnLoadCallback(drawTable);
function drawTable() {
var data = google.visualization.arrayToDataTable([
<?php echo $dados; ?>
]);
var table = new google.visualization.Table(document.getElementById('table_div'));
data.sort({column: 0, desc: true});
table.draw(data, {showRowNumber: false, width: '100%', height: '100%'});
}PHP代码(获取数据)是:
$dados = "['Data','InfoX','InfoY'],";
for($i = 0; $i < count($vet); $i++){
$original_Date = $vet[$i][0];
$New_Date = date("d/m/Y", strtotime($original_Date));
$dados .= "['".$New_Date."',".$vet[$i][2].",".$vet[$i][3].','."]";
if ($i+1 < count($vet)){
$dados .= ",";
}目前,表如下所示:

正如您所看到的,我对第一列的排序方式有问题(现在,它是先按日排序,然后按月和年份排序)。
我需要按时间顺序排列第一列(年月日),但以dd/mm/yyyy格式显示它(在HTML中,它就像使用data-search和data-order时一样)。是否有任何选择,习惯或选择,我需要用来解决我的问题?
提前感谢你的回答,如果你需要的话,可以随时询问更多的细节。
发布于 2019-03-18 14:03:20
问题是日期作为字符串出现。
对于实际日期,排序函数将正确工作。
尝试使用以下php..。
$New_Date = date("m/d/Y", strtotime($original_Date));
$dados .= "[new Date('".$New_Date."'),".$vet[$i][2].",".$vet[$i][3].','."]";然后在javascript中,使用日期格式化程序格式化日期列.
google.charts.load('current', {'packages':['table']});
google.charts.setOnLoadCallback(drawTable);
function drawTable() {
var data = google.visualization.arrayToDataTable([
<?php echo $dados; ?>
]);
var table = new google.visualization.Table(document.getElementById('table_div'));
data.sort({column: 0, desc: true});
var formatDate = new google.visualization.DateFormat({pattern: 'dd/MM/yyyy'});
formatDate.format(data, 0);
table.draw(data, {showRowNumber: false, width: '100%', height: '100%'});
}https://stackoverflow.com/questions/55222863
复制相似问题