Javascript MySQL中用于AngularJS日期过滤器过滤的日期格式

Javascript MySQL中用于AngularJS日期过滤器过滤的日期格式,javascript,mysql,angularjs,sorting,Javascript,Mysql,Angularjs,Sorting,我正在使用MySQL、AngularJS和ngTable构建我的表格数据,我在排序方面遇到了问题 数据库 `id` int(11) NOT NULL AUTO_INCREMENT, `packageid` int(11) NOT NULL, `created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, // 2014-10-30 15:31:56 `status` int(11) NOT NULL DEFAULT '1', SQL ng re

我正在使用MySQL、AngularJS和ngTable构建我的表格数据,我在排序方面遇到了问题

数据库

`id` int(11) NOT NULL AUTO_INCREMENT,
`packageid` int(11) NOT NULL,
`created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,  // 2014-10-30 15:31:56
`status` int(11) NOT NULL DEFAULT '1',
SQL

ng repeat内的AngularJS=文档中的文档

<td data-title="'Date'" 
    sortable="'created'" 
    ng-bind="(doc.created|date:mediumDate)"></td> // attempt one

<td data-title="'Date'" 
    sortable="'date'" 
    ng-bind="(doc.date|date:mediumDate)"></td> // attempt two

对于这两种格式中的任何一种,排序都不起作用,因为它基于字符串进行排序。是否可以将日期转换为Angular可以过滤但基于日期值排序的内容,而只需要在SQL语句中进行更改?如果没有,我需要做什么才能使排序工作?

在阅读MySQL文档时,我发现了另一个日期函数UNIX\u TIMESTAMP,我用它来替换查询中的date\u格式

$query = $this->db->query( 
    "SELECT packageinstance.id, 
            UNIX_TIMESTAMP(packageinstance.created) as epoch_time, // replaced DATE_FORMAT
            user.username, 
            status.name as status 
    FROM packageinstance 
    JOIN user   ON user.id   = packageinstance.creatorid 
    JOIN status ON status.id = packageinstance.status 
    WHERE    packageinstance.locationid = ? 
    ORDER BY packageinstance.created DESC", array( $locationId ) );
这使得Angular的日期过滤器可以完成它的工作,但是显示了所有日期的1970年1月17日。再多做一点工作,我记得时间戳是自1970年1月17日以来的秒数,需要乘以1000才能在过滤之前到达正确的日期,所以我将其添加到角度标记中,现在它可以为用户正确过滤,并使用基础时间戳正确排序

<td data-title="'Date'" 
    sortable="'epoch_time'" 
    ng-bind="(doc.epoch_time*1000|date:mediumDate)"></td>
<td data-title="'Date'" 
    sortable="'epoch_time'" 
    ng-bind="(doc.epoch_time*1000|date:mediumDate)"></td>