]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/helpers/utils/date.ts
More precise date for jobs
[github/Chocobozzz/PeerTube.git] / client / src / app / helpers / utils / date.ts
index 012b959ea28f9abff0980ba722347f3bed722a20..75363cc8197d78440498e151838398b9b4f4eb24 100644 (file)
@@ -1,8 +1,29 @@
 import { DatePipe } from '@angular/common'
 
-const datePipe = new DatePipe('en')
-function dateToHuman (date: string) {
-  return datePipe.transform(date, 'medium')
+let datePipe: DatePipe
+let intl: Intl.DateTimeFormat
+
+type DateFormat = 'medium' | 'precise'
+
+function dateToHuman (localeId: string, date: Date, format: 'medium' | 'precise' = 'medium') {
+  if (!datePipe) {
+    datePipe = new DatePipe(localeId)
+  }
+
+  if (!intl) {
+    intl = new Intl.DateTimeFormat(localeId, {
+      hour: 'numeric',
+      minute: 'numeric',
+      second: 'numeric',
+      year: '2-digit',
+      month: 'numeric',
+      day: 'numeric',
+      fractionalSecondDigits: 3
+    })
+  }
+
+  if (format === 'medium') return datePipe.transform(date, format)
+  if (format === 'precise') return intl.format(date)
 }
 
 function durationToString (duration: number) {
@@ -20,6 +41,8 @@ function durationToString (duration: number) {
 }
 
 export {
+  DateFormat,
+
   durationToString,
   dateToHuman
 }