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 に保存する場合は、タイムスタンプを保存します (Date にはgetTime()それを提供する があります)。これらはソート可能な数値です。

次のように、日付文字列の 1 つからタイムスタンプを取得できます。

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 に答える