fix: date picker improvements (#793)

* use vue component for date picker

* zero out database fields even when set to 0001-xx-xx

* fix wrong datetime display + improved datepicker

* fix ts error

* zero out times

* add date-fns to dependencies
This commit is contained in:
Hayden 2024-02-29 12:58:26 -06:00 committed by GitHub
parent c708b1759e
commit 4c9ddac395
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 186 additions and 41 deletions

View file

@ -0,0 +1,34 @@
import { addDays } from "date-fns";
/*
* Formats a date as a string
* */
export function format(date: Date | string): string {
if (typeof date === "string") {
return date;
}
return date.toISOString().split("T")[0];
}
export function zeroTime(date: Date): Date {
return new Date(date.getFullYear(), date.getMonth(), date.getDate());
}
export function factorRange(offset: number = 7): [Date, Date] {
const date = zeroTime(new Date());
return [date, addDays(date, offset)];
}
export function factory(offset = 0): Date {
if (offset) {
return addDays(zeroTime(new Date()), offset);
}
return zeroTime(new Date());
}
export function parse(yyyyMMdd: string): Date {
const parts = yyyyMMdd.split("-");
return new Date(parseInt(parts[0]), parseInt(parts[1]) - 1, parseInt(parts[2]));
}