webapp: add utils method timestampToString

This commit is contained in:
Thomas Basler 2022-10-17 21:13:18 +02:00
parent 4775f34f5b
commit cae6ddccb7
4 changed files with 30 additions and 22 deletions

View File

@ -21,6 +21,7 @@
<script lang="ts"> <script lang="ts">
import { defineComponent } from 'vue'; import { defineComponent } from 'vue';
import { timestampToString } from '@/utils';
declare interface EventData { declare interface EventData {
message_id: number, message_id: number,
@ -41,18 +42,7 @@ export default defineComponent({
computed: { computed: {
timeInHours() { timeInHours() {
return (value: number) => { return (value: number) => {
const days = Math.floor(value / (24 * 60 * 60)); return timestampToString(value);
const secAfterDays = value - days * (24 * 60 * 60);
const hours = Math.floor(secAfterDays / (60 * 60));
const secAfterHours = secAfterDays - hours * (60 * 60);
const minutes = Math.floor(secAfterHours / 60);
const seconds = secAfterHours - minutes * 60;
const dHours = hours > 9 ? hours : "0" + hours;
const dMins = minutes > 9 ? minutes : "0" + minutes;
const dSecs = seconds > 9 ? seconds : "0" + seconds;
return dHours + ":" + dMins + ":" + dSecs;
}; };
}, },
}, },

View File

@ -56,6 +56,7 @@
<script lang="ts"> <script lang="ts">
import { defineComponent, type PropType } from 'vue'; import { defineComponent, type PropType } from 'vue';
import type { SystemStatus } from '@/types/SystemStatus'; import type { SystemStatus } from '@/types/SystemStatus';
import { timestampToString } from '@/utils';
export default defineComponent({ export default defineComponent({
props: { props: {
@ -64,16 +65,7 @@ export default defineComponent({
computed: { computed: {
timeInHours() { timeInHours() {
return (value: number) => { return (value: number) => {
const days = Math.floor(value / 3600 / 24); return timestampToString(value, true);
const hours = Math.floor((value - days * 3600 * 24) / 3600);
const minutes = Math.floor((value - days * 3600 * 24 - hours * 3600) / 60);
const seconds = (value - days * 3600 * 24 - hours * 3600 + minutes * 60) % 60;
const dHours = hours > 9 ? hours : "0" + hours;
const dMins = minutes > 9 ? minutes : "0" + minutes;
const dSecs = seconds > 9 ? seconds : "0" + seconds;
return days + " days " + dHours + ":" + dMins + ":" + dSecs;
}; };
}, },
}, },

View File

@ -0,0 +1,9 @@
import { timestampToString } from './time';
export {
timestampToString,
};
export default {
timestampToString,
}

17
webapp/src/utils/time.ts Normal file
View File

@ -0,0 +1,17 @@
export const timestampToString = (value: number, includeDays = false): string => {
const days = Math.floor(value / (24 * 60 * 60));
const secAfterDays = value - days * (24 * 60 * 60);
const hours = Math.floor(secAfterDays / (60 * 60));
const secAfterHours = secAfterDays - hours * (60 * 60);
const minutes = Math.floor(secAfterHours / 60);
const seconds = secAfterHours - minutes * 60;
const dHours = hours > 9 ? hours : "0" + hours;
const dMins = minutes > 9 ? minutes : "0" + minutes;
const dSecs = seconds > 9 ? seconds : "0" + seconds;
if (includeDays) {
return days + " days " + dHours + ":" + dMins + ":" + dSecs;
}
return dHours + ":" + dMins + ":" + dSecs;
}