diff --git a/client/src/app/shared/date/date-toggle.component.html b/client/src/app/shared/date/date-toggle.component.html
new file mode 100644
index 000000000..ebd4ce442
--- /dev/null
+++ b/client/src/app/shared/date/date-toggle.component.html
@@ -0,0 +1,6 @@
+
diff --git a/client/src/app/shared/date/date-toggle.component.scss b/client/src/app/shared/date/date-toggle.component.scss
new file mode 100644
index 000000000..86700d1d4
--- /dev/null
+++ b/client/src/app/shared/date/date-toggle.component.scss
@@ -0,0 +1,5 @@
+.date-toggle {
+ &:hover {
+ cursor: default
+ }
+}
diff --git a/client/src/app/shared/date/date-toggle.component.ts b/client/src/app/shared/date/date-toggle.component.ts
new file mode 100644
index 000000000..fa48da8e8
--- /dev/null
+++ b/client/src/app/shared/date/date-toggle.component.ts
@@ -0,0 +1,47 @@
+import { Component, Input, OnInit, OnChanges } from '@angular/core'
+import { DatePipe } from '@angular/common'
+import { FromNowPipe } from '../angular/from-now.pipe'
+
+@Component({
+ selector: 'my-date-toggle',
+ templateUrl: './date-toggle.component.html',
+ styleUrls: [ './date-toggle.component.scss' ],
+ providers: [ DatePipe, FromNowPipe ]
+})
+export class DateToggleComponent implements OnInit, OnChanges {
+ @Input() date: Date
+ @Input() toggled = false
+
+ dateRelative: string
+ dateAbsolute: string
+
+ constructor (
+ private datePipe: DatePipe,
+ private fromNowPipe: FromNowPipe
+ ) { }
+
+ ngOnInit () {
+ this.updateDates()
+ }
+
+ ngOnChanges () {
+ this.updateDates()
+ }
+
+ toggle () {
+ this.toggled = !this.toggled
+ }
+
+ getTitle () {
+ return this.toggled ? this.dateRelative : this.dateAbsolute
+ }
+
+ getContent () {
+ return this.toggled ? this.dateAbsolute : this.dateRelative
+ }
+
+ private updateDates () {
+ this.dateRelative = this.fromNowPipe.transform(this.date)
+ this.dateAbsolute = this.datePipe.transform(this.date, 'long')
+ }
+}
diff --git a/client/src/app/shared/shared.module.ts b/client/src/app/shared/shared.module.ts
index f6991a66d..8cbb15bfa 100644
--- a/client/src/app/shared/shared.module.ts
+++ b/client/src/app/shared/shared.module.ts
@@ -73,6 +73,7 @@ import { UserNotificationsComponent } from '@app/shared/users/user-notifications
import { InstanceService } from '@app/shared/instance/instance.service'
import { HtmlRendererService, LinkifierService, MarkdownService } from '@app/shared/renderer'
import { ConfirmComponent } from '@app/shared/confirm/confirm.component'
+import { DateToggleComponent } from '@app/shared/date/date-toggle.component'
import { SmallLoaderComponent } from '@app/shared/misc/small-loader.component'
import { VideoPlaylistService } from '@app/shared/video-playlist/video-playlist.service'
import { PreviewUploadComponent } from '@app/shared/images/preview-upload.component'
@@ -165,6 +166,7 @@ import { FeatureBooleanComponent } from '@app/shared/instance/feature-boolean.co
TopMenuDropdownComponent,
UserNotificationsComponent,
ConfirmComponent,
+ DateToggleComponent,
GlobalIconComponent,
PreviewUploadComponent
@@ -232,6 +234,7 @@ import { FeatureBooleanComponent } from '@app/shared/instance/feature-boolean.co
TopMenuDropdownComponent,
UserNotificationsComponent,
ConfirmComponent,
+ DateToggleComponent,
GlobalIconComponent,
PreviewUploadComponent,
diff --git a/client/src/app/shared/video/video-miniature.component.html b/client/src/app/shared/video/video-miniature.component.html
index 5d5691b75..abd193bb1 100644
--- a/client/src/app/shared/video/video-miniature.component.html
+++ b/client/src/app/shared/video/video-miniature.component.html
@@ -17,7 +17,7 @@
-