0

可能重复:
日期未在 JavaScript 中排序

我使用 24\jan\2012 格式作为日期表。表条目如 24/jan/1978 30/feb/2011 等。我无法更改日期格式,因为数据库有超过 1000 个条目。代码的问题是我指定了通常格式为 24/3/1956 等的日期。

我不知道如何为 21/nov/2011 等指定日期格式。请帮助。其他表字段(例如名称和所有)正在排序。该怎么办 ?

我的代码是:

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

这是写在 php print 语句中的。只有 23 5 等被排序,而不是 jan mar 等。

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 回答