refactor: docubook@latest template nextjs-docker

This commit is contained in:
gitfromwildan
2026-05-30 18:52:21 +07:00
parent bf2ef37f49
commit 80eb49d968
101 changed files with 1759 additions and 4165 deletions

View File

@@ -5,35 +5,46 @@ export function cn(...inputs: ClassValue[]) {
return twMerge(clsx(inputs))
}
// Thursday, May 23, 2024
export function formatDate(dateStr: string): string {
const [day, month, year] = dateStr.split("-").map(Number)
const date = new Date(year, month - 1, day)
/** Parse both `dd-MM-yyyy` and ISO 8601 date strings into a Date object. */
function parseDate(dateStr: string): Date {
// ISO 8601: starts with 4-digit year (e.g. "2026-04-05" or "2026-04-05T00:00:00.000Z")
if (/^\d{4}-/.test(dateStr)) return new Date(dateStr);
// Legacy dd-MM-yyyy (e.g. "05-04-2026")
const [day, month, year] = dateStr.split("-").map(Number);
return new Date(year, month - 1, day);
}
// "Thursday, April 5, 2026"
export function formatDate(dateStrOrDate: string | Date): string {
const date = dateStrOrDate instanceof Date ? dateStrOrDate : parseDate(dateStrOrDate);
const options: Intl.DateTimeFormatOptions = {
weekday: "long",
year: "numeric",
month: "long",
day: "numeric",
}
};
return date.toLocaleDateString("en-US", options)
return date.toLocaleDateString("en-US", options);
}
// May 23, 2024
export function formatDate2(dateStr: string): string {
const [day, month, year] = dateStr.split("-").map(Number)
const date = new Date(year, month - 1, day)
// "Apr 5, 2026"
export function formatDate2(dateStrOrDate: string | Date): string {
const date = dateStrOrDate instanceof Date ? dateStrOrDate : parseDate(dateStrOrDate);
const options: Intl.DateTimeFormatOptions = {
month: "short",
day: "numeric",
year: "numeric",
}
return date.toLocaleDateString("en-US", options)
};
return date.toLocaleDateString("en-US", options);
}
export function stringToDate(date: string) {
const [day, month, year] = date.split("-").map(Number)
return new Date(year, month - 1, day)
export function stringToDate(date: string | Date) {
return date instanceof Date ? date : parseDate(date);
}
export function toIsoDateOnly(dateStrOrDate: string | Date): string {
const date = stringToDate(dateStrOrDate)
return date.toISOString().slice(0, 10)
}