diff --git a/resources/js/components/content/partials/fields/show/ShowStartEndTime.vue b/resources/js/components/content/partials/fields/show/ShowStartEndTime.vue index 6659c42..806c86a 100644 --- a/resources/js/components/content/partials/fields/show/ShowStartEndTime.vue +++ b/resources/js/components/content/partials/fields/show/ShowStartEndTime.vue @@ -2,7 +2,8 @@ import {onMounted, type PropType} from "vue"; import { ref, watch } from 'vue'; import {getShowInstances} from "@models/show/showInstance.ts"; - +import {getHoursMinutesFromString, getTimeDiff} from "@/helpers/DateFormatter.ts"; +// Emits, props and models const emits = defineEmits(['update:duration']) const props = defineProps({ @@ -25,37 +26,26 @@ const props = defineProps({ }) const startTime = defineModel({default: '08:00'}); + +// Data const duration = ref('0:0'); const endTime = ref(''); const startMenu = ref(false); const endMenu = ref(false); -const getDuration = (startTime: Date, endTime: Date) => { - const diffInMilliseconds = Math.abs(startTime.getTime() - endTime.getTime()); - const remainingHours = Math.floor((diffInMilliseconds % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); - const remainingMinutes = Math.floor((diffInMilliseconds % (1000 * 60 * 60)) / (1000 * 60)); - - return `${remainingHours}:${remainingMinutes}`; -}; - -const getHoursMinutes = (timeString: string) => { - const [ h, m ] = timeString.split(":"); - const ms = new Date().setHours(h,m); - return new Date(ms) -}; - +// Func const checkTime = () => { if (startTime.value && endTime) { - const start = getHoursMinutes(startTime.value); - let end = getHoursMinutes(endTime.value); + const start: Date = getHoursMinutesFromString(startTime.value); + let end: Date = getHoursMinutesFromString(endTime.value); if (end.getTime() <= start.getTime()) { end = new Date(start); end.setMinutes(start.getMinutes() + 60); endTime.value = end.toLocaleTimeString('en-US', { hour12: false, hour: '2-digit', minute: '2-digit' });; } - duration.value = getDuration(start, end); + duration.value = getTimeDiff(start, end); emits('update:duration', duration.value); } }