How to sort the date and time /日時のソートの仕方

a_129
Mega Guru

現在、フローデザイナーで、日時をソートするアクションを作成しています。

やりたいこととしては、複数レコードを入力値とし、日時の昇順に並べ替え、配列で出力したいと考えています。

以下、自身で書いてみましたが、上手くいかないためご教授いただければ幸いです。

 

(function execute(inputs, outputs) {
  var asc_array = [];
  while (inputs.asset_records.next()) {
    var array = [];
    array[0] = inputs.asset_records.getValue("u_assign");
    array[1] = inputs.asset_records.getValue("u_model");
    array[2] = inputs.asset_records.getValue("u_work_start");
    array[3] = inputs.asset_records.getValue("u_work_end");
    array[4] = inputs.asset_records.getValue("u_parent");
    asc_array.push(array);    
  }
   asc_array.sort(function(a, b){
	outputs.asc_array = (a > b ? 1 : -1);}
})(inputs, outputs);
1 件の受理された解決策

Hitoshi Ozawa
Giga Sage
Giga Sage

aさん、

具体的にどのフィールドでソートするのでしょうか?u_work_startでしょうか?

日付の場合は形式を重要です。例えた形式がmm/dd/yyyyやdd/mm/yyyyでは直接の値でソートしても正しくなりません。列の型がDateなのかDate/Timeであるのかも関係します。

なお、レコードを取得する時に予めてソートしておくのはどうでしょうか?

元の投稿で解決策を見る

6件の返信6

Hitoshi Ozawa
Giga Sage
Giga Sage

aさん、

具体的にどのフィールドでソートするのでしょうか?u_work_startでしょうか?

日付の場合は形式を重要です。例えた形式がmm/dd/yyyyやdd/mm/yyyyでは直接の値でソートしても正しくなりません。列の型がDateなのかDate/Timeであるのかも関係します。

なお、レコードを取得する時に予めてソートしておくのはどうでしょうか?

ご回答ありがとうございます。

ソートを行うフィールドは仰る通り、「u_work_start」で行いたいと考えています。

また、形式は「yyyy-mm-dd hh:mm:ss」、型は「Date/Time」で行いたいと考えています。

 

>レコードを取得する時に予めてソートしておくのはどうでしょうか?

この考えは抜けておりました。ありがとうございます。

ちなみに、レコード検索アクションを使用するときに、以下のようにすることで、ソートができるのでしょうか。

find_real_file.png

はい。順番にソートする列を指定します。

ご回答ありがとうございます。

ご回答いただいた方法でソート後、別のフィールドに数字で順番をつけたいと思っています。

「作業開始時間」でソートし、時間がはやい順に、別フィールドの「優先順位」に数字を1から割り振る

イメージです。このようなことができる方法があれば教えていただきたいです。何度もすみません。