0

重複の可能性:
JavaScript で日付がソートされない

日付のテーブルには 24\jan\2012 形式を使用しました。テーブルのエントリは、1978 年 1 月 24 日、2011 年 2 月 30 日などです。データベースには 1000 を超えるエントリがあるため、日付の形式を変更できません。コードの問題は、通常の形式が 24/3/1956 である日付を指定していることです。

2011 年 11 月 21 日などの日付形式を指定する方法がわかりません。name や all などの他のテーブル フィールドが並べ替えられています。何をすべきか ?

私のコードは次のとおりです。

<th class="table-sortable">Date table-filterable</th>

これはphp printステートメント内に書かれています.23 5などのみがソートされ、1月3日などはソートされません.

4

1 に答える 1

0

私の理解が正しければ、月を挿入可能な値として解析する方法を尋ねていると思います。つまり、これは実際には並べ替え (アルファベット順) ではなく、並べ替え (解析) に関するものです。

その場合は、次の解決策を提案します。

$data = '30/Feb/2012';               // non-existent date, by the way
$dateArray = explode('/', $data);    // array('30', 'Feb', '2012')
$month = $dateArray[1];              // 'Feb'
$abbreviations = array('Jan', 'Feb', 'Mar', ...);
$key = array_search($month, $abbreviations);
$numericalMonth = $key + 1;

これにより、1 から 12 の範囲の月が得られ、それを並べ替えることができます。

...私があなたの質問を正しく理解していれば。

編集

これをoutputとしてソートしたい場合は、これを再フォーマットできます。

$newDate = implode('/', array($dateArray[0], $numericalMonth, $dateArray[2]));

以上のことから、データを解析するためのはるかに簡潔な方法はstrtotime()anddate()関数を使用することであることに注意する必要があります。

于 2012-09-21T06:05:00.867 に答える