Saya kira Anda akhirnya berakhir dengan daftar posting yang memiliki dua dimensi peringkat terpisah, yaitu:
{ age: 86400, distance: 1000 }
{ age: 172800, distance: 5000 }
{ age: 57600, distance: 20000 }
{ age: 288000, distance: 8000 }
Tidak masalah apa satuannya, katakanlah detik dan meter. Jika Anda ingin keduanya memengaruhi peringkat penyortiran, maka Anda akan mendapatkan algoritme peringkat, paling sederhana seperti ini:
rank = (C1 * age) + (C2 * distance)
Dimana C1 dan C2 adalah konstanta yang dapat Anda atur untuk menyesuaikan bobot. Nilainya akan bergantung pada unit apa yang Anda gunakan, dan seberapa besar pengaruh peringkat yang Anda tetapkan untuk setiap dimensi.
Pilihan lain bisa dipesan terlebih dahulu berdasarkan agregat waktu lalu jarak, jadi semua pos mulai hari ini diurutkan berdasarkan jarak; diikuti dengan yang kemarin diurutkan berdasarkan jarak, dan seterusnya. Atau sebaliknya, diurutkan berdasarkan rentang jarak, lalu usia, jadi semuanya dalam (0 - 1000m) diurutkan berdasarkan usia; diikuti oleh semua dalam (1001 - 2000m), dan seterusnya.