Сортировка записей на основе измененной метки времени? - PullRequest
1 голос
/ 09 февраля 2012

Я пытаюсь отсортировать список записей, которые были созданы с использованием скрипта очистки экрана.Сценарий добавляет следующий стиль даты и времени (отметка времени) к каждой записи:

13 Jan 14:49

Сценарий запускается каждые 15 минут, но если я установил порядок сортировки 'time DESC', это не совсем так.имеет смысл, потому что он перечисляет записи следующим образом:

13 Jan 14:49
13 Jan 12:32
13 Jan 09:45
08 Feb 01:10
07 Feb 23:31
07 Feb 06:53
06 Feb 23:15

Как вы можете видеть, он правильно отображает первую цифру (день месяца в числовой форме), но помещает февраль после января.Чтобы добавить к путанице, это помещает самую последнюю дату в феврале в верхнюю часть февральского раздела.

Есть ли лучший способ сортировки, чтобы они были в более понятном порядке?

1 Ответ

1 голос
/ 09 февраля 2012

Если вы храните значения в базе данных, просто используйте тип столбца datetime при создании поля.База данных будет обрабатывать поле как время и сортировать значения в хронологическом порядке.

В противном случае, если вы храните значения в другом месте, например в плоском файле, преобразуйте форматированное время в время Unix.Время Unix - это целое число, поэтому вы можете упростить его сортировку.

Time.parse("13 Jan 09:45").to_i
# => 1326444300
Time.parse("08 Feb 01:10").to_i
# => 1328659800 

Вы всегда можете преобразовать время Unix в экземпляр Time.

Time.at(1328659800).to_s
# => "2012-02-08 01:10:00 +0100" 
...