fix: date

This commit is contained in:
opbnq-q
2025-03-08 04:21:35 -08:00
parent 882ba30792
commit 479a4e11ec
25 changed files with 5622 additions and 58 deletions

View File

@@ -1,4 +1,4 @@
const getFullTimestamp = (n: number): number => {
export const getFullTimestamp = (n: number): number => {
const length = String(n).length
let str = ''
while (str.length + length < 13) {
@@ -6,5 +6,34 @@ const getFullTimestamp = (n: number): number => {
}
return parseInt(`${n}${str}`)
}
export const toDate = (n: number) => new Date(getFullTimestamp(n))
export const toDate = (n: number | Date) => {
if (n instanceof Date) return n
return new Date(getFullTimestamp(n))
}
export const toTimestamp = (d: Date) => d.getTime()
export const dateToTimestamp = (obj: any) => {
if (typeof obj == 'object') {
for (let key in obj) {
if (obj[key] instanceof Date) {
obj[key] = toTimestamp(obj[key])
} else if (typeof obj[key] == 'object') {
dateToTimestamp(obj[key])
}
}
}
return obj
}
export const timestampToDate = (obj: any) => {
if (typeof obj == 'object') {
for (let key in obj) {
if (typeof obj[key] == 'number') {
obj[key] = toDate(obj[key])
} else if (typeof obj[key] == 'object') {
timestampToDate(obj[key])
}
}
}
return obj
}

View File

@@ -0,0 +1,14 @@
import type { PrimitiveFieldType } from "../../types/primitive-field-type.type"
import { toDate } from "./converters.util";
export const viewDate = (data: unknown, type: PrimitiveFieldType) => {
if (type !== 'date') return data;
return toDate(data as number | Date).toLocaleDateString('ru-RU', {
year: 'numeric',
month: 'long',
day: 'numeric',
hour: '2-digit',
minute: '2-digit',
second: '2-digit'
})
}

View File

@@ -1,6 +1,6 @@
import type { IEntity } from "../../types/entity.type";
import type { Scheme } from "../../types/scheme.type";
import { getTomorrow } from "../date/getters";
import { toTimestamp } from "../date/converters.util";
export const getDefaultValues = <T extends IEntity>(scheme: Scheme<T>) => {
const keys = Object.keys(scheme) as (keyof typeof scheme)[]
@@ -8,10 +8,11 @@ export const getDefaultValues = <T extends IEntity>(scheme: Scheme<T>) => {
for (let key of keys) {
const primitive = scheme[key]?.type?.primitive
if (primitive == 'string' || primitive == 'multiple') {
if (scheme[key].hidden) continue;
if ((primitive == 'string' || primitive == 'multiple')) {
obj[key] = ''
} else if (primitive == 'date') {
obj[key] = getTomorrow()
obj[key] = toTimestamp(new Date)
} else if (primitive == 'boolean') {
obj[key] = false
} else if (primitive == 'number') {