Javascript MySQL中用于AngularJS日期过滤器过滤的日期格式
我正在使用MySQL、AngularJS和ngTable构建我的表格数据,我在排序方面遇到了问题 数据库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
`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>