FIX: Show correct dates in topic timelines (#13670)

FIX: Show correct dates in topic timelines (#13670)

The date shown in topic timeline was one day later if the post at that position was made near midnight. This happened because the days number was rounded down.

diff --git a/lib/topic_view.rb b/lib/topic_view.rb
index 675b543..e97ea55 100644
--- a/lib/topic_view.rb
+++ b/lib/topic_view.rb
@@ -608,7 +608,7 @@ class TopicView
       columns = [:id]
 
       if !is_mega_topic?
-        columns << 'EXTRACT(DAYS FROM CURRENT_TIMESTAMP - posts.created_at)::INT AS days_ago'
+        columns << '(EXTRACT(EPOCH FROM CURRENT_TIMESTAMP - posts.created_at) / 86400)::INT AS days_ago'
       end
 
       posts.pluck(*columns)
diff --git a/spec/components/topic_view_spec.rb b/spec/components/topic_view_spec.rb
index ceef467..ac4e91d 100644
--- a/spec/components/topic_view_spec.rb
+++ b/spec/components/topic_view_spec.rb
@@ -796,13 +796,13 @@ describe TopicView do
   end
 
   describe '#filtered_post_stream' do
-    let!(:post) { Fabricate(:post, topic: topic, user: first_poster) }
-    let!(:post2) { Fabricate(:post, topic: topic, user: evil_trout) }
+    let!(:post) { Fabricate(:post, topic: topic, user: first_poster, created_at: 18.hours.ago) }
+    let!(:post2) { Fabricate(:post, topic: topic, user: evil_trout, created_at: 6.hours.ago) }
     let!(:post3) { Fabricate(:post, topic: topic, user: first_poster) }
 
     it 'should return the right columns' do
       expect(topic_view.filtered_post_stream).to eq([
-        [post.id, 0],
+        [post.id, 1],
         [post2.id, 0],
         [post3.id, 0]
       ])

GitHub sha: f74640ac58c030cb29e6793c2913c494a7ccdfc4

This commit appears in #13670 which was approved by CvX and ZogStriP. It was merged by nbianca.