1

我从 Script Db 运行以下查询。我将它正在寻找的日期存储为“M/d/yyyy”,作为一个字符串。查找很好并返回我需要的所有内容,但排序顺序不是按月或按年。

var result = db.query({"p1arSn":e.parameter.search}).sortBy("maintAccomplishedDate", db.DESCENDING);

任何指导表示赞赏谢谢!

4

1 回答 1

2

您不能使用 sortBy 对存储为字符串的日期进行排序。你的选择是

  1. 检索未排序的数据,将其复制到数组中,然后自己使用 array.sort() ,或者
  2. 更改您在 ScriptDb 中存储的内容。

选项 1 更简单,但如果您要检索分页或有限数据,那么在检索后进行排序不是您想要的。

选项 2 有点困难 - 在 ScriptDb 中存储日期时,存储时间戳(日期有一个getTime()给你的)。这些是可以排序的数字。

您可以从您的日期字符串之一中获取时间戳,如下所示:

var timestamp = new Date('3/5/1983').getTime()  // 415688400000

您可以像这样取回原始字符串:

var d = new Date(415688400000);
var string = [d.getMonth() + 1, d.getDate(), d.getYear()].join('/');
于 2013-01-07T17:58:21.427 回答