按时间排序的问题?
程序员文章站
2022-05-31 09:22:39
...
表中某时间字段有一些格式:
November 11, 2016
31 Oct 2016
2016-01-11
07 Nov 2016
能否按时间排序?
回复内容:
表中某时间字段有一些格式:
November 11, 2016
31 Oct 2016
2016-01-11
07 Nov 2016
能否按时间排序?
python3
>>> import time
>>> t=[('November 11, 2016','%B %d, %Y'),
('31 Oct 2016','%d %b %Y'),
('2016-01-11','%Y-%m-%d'),
('07 Nov 2016','%d %b %Y'),]
>>> t.sort(key=lambda d:time.mktime(time.strptime(d[0],d[1])))
>>> from pprint import pprint as pp
>>> pp(t)
[('2016-01-11', '%Y-%m-%d'),
('31 Oct 2016', '%d %b %Y'),
('07 Nov 2016', '%d %b %Y'),
('November 11, 2016', '%B %d, %Y')]
>>>
$date = [
'November 11, 2016',
'31 Oct 2016',
'2016-01-11',
'07 Nov 2016'
];
usort($date, function($a, $b){
$a = strtotime($a);
$b = strtotime($b);
if ($a == $b) {
return 0;
}
return ($a > $b) ? 1 : -1;
});
php
composer install Carbon
use Carbon\Carbon;
$date = [
new Carbon('November 11, 2016', 'Asia/Shanghai'),
new Carbon('31 Oct 2016', 'Asia/Shanghai'),
new Carbon('2016-01-11', 'Asia/Shanghai'),
new Carbon('07 Nov 2016', 'Asia/Shanghai'),
];
for ($i = 0; $i lt($date[$i]) {
$tmp = $date[$j];
$date[$j] = $date[$i];
$date[$i] = $tmp;
}
}
}
手机打的……如果有错,见谅……