Как сделать, чтобы меньшие числа давали больше очков?
Буквально ваши правила реализуются подобным JavaScript кодом – с условиями:function getPostScore(time) {
  var diff = Math.floor((new Date()).getTime()/1000) - time;
  if( diff <= 3600) return 50000;
  else if( diff <= 7200) return 25000;
  else if( diff <= 10800) return 10000;
  else return 0;
}

getPostScore(1493487180); // 10000
Но ступенчатость значений, наверное, не вполне оправдана и лучше будет какой-то гладкой функцией. Например, вида y = k / x
С коэффициентом k = 50000 * 3600 она удачно захватывает и вторую точку. Но плоха тем, что ближе к нулю зашкаливает в +бесконечность.
Наверное, для вашей задачи уместнее S-образная кривая – сигмоида, задаваемая формулой вида y = 1 / (1 + e-x)    Примерно подобрал коэффициенты:function getPostSigma(time){
  var diff = Math.floor((new Date()).getTime()/1000) - time;
  return Math.round( 10000 + 40000 / (1 + Math.exp((diff-6800)/700)));
}

getPostSigma(1493531780); // 49998
getPostSigma(1493522780); // 11545
HIGHEST*exp(-diff/SPEED)
где 
HIGHEST - константа максимального значения очков (за размещение 0 секунд назад)
SPEED - константа скорости убывания 
например,
50000*exp(-diff/4500)