0

JavaScript で関数を考え出すのに助けが必要です。関数は、この形式の日付のリストから最も古い日付を見つけることができるはずですyyyy-mm-dd hh:mm:ss。したがって、関数はテキストを受け取り、行の中から最も古い日付エントリを見つけて、その日付に関連付けられたテキストを選択する必要があります。

また、この問題に有効な Java ソリューションがあれば、JavaScript 内に Java を含めるために何かを使用します。

4

4 に答える 4

3

これがあなたがそれを行う方法です...

  1. 日付を配列として反復処理し、Unix エポックに変換します。
  2. Math.min.apply(Math, arrayOfDates)or better yetで最も古いものを見つけますMath.min(...arrayOfDates)
于 2012-08-23T00:42:13.473 に答える
3

datelistが文字列であり、各日付が独自の行にあると仮定すると、これは機能します。

var oldest = (function() {var o = ":", c, a=datelist.split(/\r?\n/); while(c=a.shift()) o = o < c ? o : c; return o;})();

それを分解すると、これがどのように機能するかです。基本的には、関数を作成して実行し、その戻り値を取得します。関数は次のようになります。

var o = ":",
  // ":" comes after "9" in the character map, so it will be greater than any date
    c, a = datelist.split(/\r?\n/);
  // split on newlines, accomodating both \r and `\r\n` options.
while(c = a.shift()) {
  // basically loop through each date
    o = o < c ? o : c;
  // if the current oldest date is older than the one we're looking at, keep the old one
  // otherwise the new date is older so should be kept
}
return o;
  // return the result
于 2012-08-23T00:45:10.587 に答える
0

jqueryを使用したWibbly-wobblydollarsy-wollarsyの例:

  $("body").append($("<div>").attr("id", "q")); //some gratuitous jquery
  var timelist = "2012-03-03 10:14:21 \r\n 2012-05-15 21:21:12\r\n 2012-07-01 10:19:19\r\n2012-02-11 21:21:12";
  var datelist = timelist.split("\r\n");
  var oldest = ":";
  $.each(datelist, function (a) {
    var trimmedThis = $.trim(this);
    if (trimmedThis < latest) oldest = trimmedThis;
  });
  $("#q").text(oldest); //just to beef up the $ count
于 2012-08-23T01:16:08.807 に答える
0

Dateすべての日付文字列をオブジェクトに変換し、リストを数値順に並べ替えて最初の項目を取得できます。Math.minまたは、ソートされたリストが必要ない場合は、適用して最低値を取得することもできます。

var minDate = Math.min.apply(null, datestrings.map(Date));

または、形式に先行ゼロがあるため、単純な文字列の並べ替えでも同じことが行われます。最小限の文字列のみを検索するには、これを使用できます。

var min = datestrings.reduce(function(min, cur) {
    return cur < min ? cur : min;
});
于 2012-08-23T00:45:49.817 に答える