MySQL中用于AngularJS日期过滤器过滤的日期格式
Date formatting in MySQL for filtering by AngularJS date filter
我正在使用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
$query = $this->db->query(
"SELECT packageinstance.id,
packageinstance.created // 2014-10-30 15:31:56
DATE_FORMAT(packageinstance.created, '%b %e, %Y') as date, // Jan 1, 2014
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 ) );
AngularJS在ng repeat="文档中的文档"中
<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_TIMESTAMP,我用它来替换查询中的date_FORMAT。
$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才能在过滤之前到达正确的日期,所以我将其添加到Angular标记中,现在它可以正确地为用户过滤,并使用底层时间戳进行正确排序。
<td data-title="'Date'"
sortable="'epoch_time'"
ng-bind="(doc.epoch_time*1000|date:mediumDate)"></td>
相关文章:
- ui网格日期单元格过滤器,过滤日期格式导致显示错误的日期
- 如何从Wijmo过滤flexgrid中的日期
- 过滤日期范围 angularjs 时出错
- AngularJS过滤格式化的日期
- 在JavaScript中,按日期和之后的名称过滤数组
- 如何在 Angular js 中按日期过滤数据
- JavaScript 智能日期过滤
- 按输入日期过滤 ng 重复
- 拉拉维尔角度如何过滤碳串上的日期
- Dojo 网格:将过滤条件发送到服务器,具有有效日期
- 如何使用角度js按月和年正确过滤日期
- 酒窝.js使用日期范围过滤 X 轴
- 角度JS过滤日期
- ng 表过滤毫秒日期数据
- angular - 过滤开始日期和结束日期在所选月份和年份范围内的所有对象
- 如何在角度js中使用日期过滤数据
- 为morris图表添加了日期过滤组件
- 如何使用动态日期过滤oData调用
- JavaScript | AngularJS:根据日期过滤结果过滤项目
- 如何使用JSON格式的日期过滤数据