Files
lixiyu-net/lib/date.ts

66 lines
1.7 KiB
TypeScript
Raw Normal View History

2023-12-25 17:21:39 +08:00
/**
* Convert the date format of YYYY-MM-DD to American writing
* @param date The date in format of YYYY-MM-DD.
*/
2024-08-14 11:24:25 +08:00
export const normalizeDate = (date = "1970-01-01"): string => {
const [year, month, day] = date.split("-");
const month_num = Number.parseInt(month);
const day_num = Number.parseInt(day);
2023-12-25 17:21:39 +08:00
const month_en: {
[index: number]: string;
} = {
1: "January",
2: "February",
3: "March",
4: "April",
5: "May",
6: "June",
7: "July",
8: "August",
9: "September",
10: "October",
11: "November",
12: "December",
};
2024-08-12 17:16:42 +08:00
return `${month_en[month_num]} ${day_num}, ${year}`;
2023-12-25 17:21:39 +08:00
};
2024-08-12 13:53:28 +08:00
export const getCurrentTime = (): {
year: string;
month: string;
day: string;
hours: string;
minutes: string;
seconds: string;
} => {
const today = new Date();
return {
year: today.getFullYear().toString(),
month: String(today.getMonth() + 1).padStart(2, "0"),
day: String(today.getDate()).padStart(2, "0"),
hours: String(today.getHours()).padStart(2, "0"),
minutes: String(today.getMinutes()).padStart(2, "0"),
seconds: String(today.getSeconds()).padStart(2, "0"),
};
};
2024-08-14 11:24:25 +08:00
export const convertDateToISO8601 = (dateString: string, timezoneOffset = 8): string => {
const date = new Date(dateString);
const offsetHours = timezoneOffset;
const offsetMinutes = offsetHours * 60;
date.setMinutes(date.getMinutes() + offsetMinutes);
const isoString = date.toISOString();
const datePart = isoString.split("T")[0];
const timePart = "00:00:00";
const offsetSign = offsetHours >= 0 ? "+" : "-";
const absOffsetHours = Math.abs(offsetHours).toString().padStart(2, "0");
const offsetString = `${offsetSign}${absOffsetHours}:00`;
return `${datePart}T${timePart}${offsetString}`;
};