diff --git a/frontend/src/components/Map.vue b/frontend/src/components/Map.vue
index 3f14c4f..c6762be 100644
--- a/frontend/src/components/Map.vue
+++ b/frontend/src/components/Map.vue
@@ -8,7 +8,7 @@
             <div class="key">From</div>
             <div class="value">
               <a href="#" @click.prevent.stop="onStartDateClick">
-                {{ displayedDate(oldestPoint?.timestamp) }}
+                {{ displayDate(oldestPoint?.timestamp) }}
               </a>
             </div>
           </div>
@@ -16,7 +16,7 @@
             <div class="key">To</div>
             <div class="value">
               <a href="#" @click.prevent.stop="onEndDateClick">
-                {{ displayedDate(newestPoint?.timestamp) }}
+                {{ displayDate(newestPoint?.timestamp) }}
               </a>
             </div>
           </div>
@@ -61,6 +61,7 @@ import { useGeographic } from 'ol/proj';
 
 import type { Nullable } from '../models/Types';
 import Api from '../mixins/Api.vue';
+import Dates from '../mixins/Dates.vue';
 import FilterButton from './filter/ToggleButton.vue';
 import FilterForm from './filter/Form.vue';
 import GPSPoint from '../models/GPSPoint';
@@ -76,6 +77,7 @@ useGeographic()
 export default {
   mixins: [
     Api,
+    Dates,
     MapView,
     Paginate,
     Points,
@@ -191,14 +193,6 @@ export default {
       }
     },
 
-    displayedDate(date: Date | number | string | null): string {
-      if (!date) {
-        return '-'
-      }
-
-      return new Date(date).toString().replace(/GMT.*/, '')
-    },
-
     onStartDateClick() {
       this.locationQuery.startDate = this.oldestPoint?.timestamp
       this.locationQuery.minId = undefined
diff --git a/frontend/src/components/PointInfo.vue b/frontend/src/components/PointInfo.vue
index 21c4bc7..618c86c 100644
--- a/frontend/src/components/PointInfo.vue
+++ b/frontend/src/components/PointInfo.vue
@@ -22,14 +22,17 @@
 </template>
 
 <script lang="ts">
-import GPSPoint from '../models/GPSPoint';
 import Map from 'ol/Map';
 import Overlay from 'ol/Overlay';
 import type { TCountryCode } from 'countries-list';
 import { getCountryData, getEmojiFlag } from 'countries-list';
 
+import Dates from '../mixins/Dates.vue';
+import GPSPoint from '../models/GPSPoint';
+
 export default {
   emit: ['close'],
+  mixins: [Dates],
   props: {
     point: {
       type: [GPSPoint, null],
@@ -57,7 +60,7 @@ export default {
     },
 
     timeString(): string | null {
-      return this.point?.timestamp ? new Date(this.point.timestamp).toLocaleString() : null
+      return this.displayDate(this.point?.timestamp)
     },
   },
 
diff --git a/frontend/src/mixins/Dates.vue b/frontend/src/mixins/Dates.vue
new file mode 100644
index 0000000..926d775
--- /dev/null
+++ b/frontend/src/mixins/Dates.vue
@@ -0,0 +1,13 @@
+<script lang="ts">
+export default {
+  methods: {
+    displayDate(date: Date | number | string | null): string {
+      if (!date) {
+        return '-'
+      }
+
+      return new Date(date).toString().replace(/GMT.*/, '')
+    },
+  }
+}
+</script>
diff --git a/frontend/src/mixins/Points.vue b/frontend/src/mixins/Points.vue
index fdc2785..e10b2a4 100644
--- a/frontend/src/mixins/Points.vue
+++ b/frontend/src/mixins/Points.vue
@@ -9,6 +9,7 @@ import { useGeographic } from 'ol/proj';
 
 import GPSPoint from '../models/GPSPoint';
 import Geo from './Geo.vue';
+import Units from './Units.vue';
 
 const minZoom = 2
 const maxZoom = 18
@@ -16,7 +17,7 @@ const maxZoom = 18
 useGeographic()
 
 export default {
-  mixins: [Geo],
+  mixins: [Geo, Units],
   data() {
     return {
       metersTolerance: 20,
@@ -63,14 +64,6 @@ export default {
       return totalDistance
     },
 
-    displayDistance(distance: number) {
-      if (distance < 1000) {
-        return `${distance.toFixed(0)} m`
-      }
-
-      return `${(distance / 1000).toFixed(2)} km`
-    },
-
     createPointsLayer(points: Point[]): VectorLayer {
       const pointFeatures = points.map((point: Point) => new Feature(point))
       return new VectorLayer({
diff --git a/frontend/src/mixins/Units.vue b/frontend/src/mixins/Units.vue
new file mode 100644
index 0000000..5e7bc00
--- /dev/null
+++ b/frontend/src/mixins/Units.vue
@@ -0,0 +1,13 @@
+<script lang="ts">
+export default {
+  methods: {
+    displayDistance(distance: number) {
+      if (distance < 1000) {
+        return `${distance.toFixed(0)} m`
+      }
+
+      return `${(distance / 1000).toFixed(2)} km`
+    },
+  }
+}
+</script>