我正在尝试对日期表进行排序,但我似乎遇到的问题是这些日期是格式为
d M Y
的字符串(所以类似于 "04 SEPT 2016"
)。
我假设这些日期不是作为时间戳存储在数据库中(如果这有意义的话),而是作为需要转换回可以排序的内容的普通字符串。
这确实有道理,而你如何处理这个问题将取决于你想做什么。
您可以使用 php 的 datetime 函数将字符串转换为日期: (程序方法)
<?php
$date = date_create_from_format('j-M-Y', '15-Feb-2009');
echo date_format($date, 'Y-m-d');
?>
http://php.net/manual/en/datetime.createfromformat.php
或者,如果您想在 MySQL 数据库查询中选择/更新/修改/等(稍微假设您将使用 MySQL),您可以使用 STR_TO_DATE 函数
STR_TO_DATE('21,5,2013','%d,%m,%Y');
http://www.mysqltutorial.org/mysql-str_to_date/
这里更大的问题是您是否有范围将日期从字符串转换为数据库中的日期,因为这是正确的处理方法。
选择 STR_TO_DATE(字段,'%m/%d/%Y') FROM 表 ORDER BY STR_TO_DATE(字段,'%m/%d/%Y')
如果你想用 PHP 排序那么你可以尝试这个技巧:
<?php
$myarray=array(
"2 SEPT 2016",
"9 SEPT 2016",
"1 OCT 2016",
"3 DEC 2016",
"4 SEPT 2016",
);
usort($myarray, "cmpare");
print_r($myarray);
function cmpare($x, $y){
return strcmp(strtotime($y), strtotime($x));
}
?>