1- import { addHours , format , intervalToDuration , startOfDay } from 'date-fns'
1+ import { format } from 'date-fns'
22import { id } from 'date-fns/locale'
33
44const TZ_ID = { locale : id }
55
66/**
77 *
88 * @param value
9+ * @param formatStr
910 * @returns
1011 */
11- export function formatDate ( value : string | number | Date ) : string {
12- return format ( new Date ( value ) , 'dd-MM-yyyy' , TZ_ID )
12+ export function formatDate ( value : string | number | Date , formatStr : string ) {
13+ return format ( new Date ( value ) , formatStr , TZ_ID )
1314}
1415
1516/**
@@ -18,84 +19,6 @@ export function formatDate(value: string | number | Date): string {
1819 * @returns
1920 */
2021export function formatDateTime ( value : string | number | Date ) : string {
21- return format ( new Date ( value ) , 'dd-MM-yyyy HH:mm:ss' , TZ_ID )
22- }
23-
24- /**
25- * Convert Date To Excel Number Date
26- * @param value
27- * @returns
28- */
29- export const dateToNumber = ( value : string | number | Date ) : number => {
30- const getDate = new Date ( value )
31-
32- const localTime = getDate . getTime ( ) - getDate . getTimezoneOffset ( ) * 60 * 1000
33- const converted = 25569.0 + localTime / ( 1000 * 60 * 60 * 24 )
34-
35- return converted
36- }
37-
38- /**
39- * Convert Excel Number Date To Javascript Date
40- * @param value
41- * @returns
42- */
43- export const convertDateExcelNumber = ( value : number ) : Date => {
44- const getDate = new Date ( Math . round ( value - 25569.0 ) * ( 1000 * 60 * 60 * 24 ) )
45-
46- // UTC +7
47- const dateFromUTC = addHours ( getDate , 7 )
48- const result = startOfDay ( dateFromUTC )
49-
50- return result
51- }
52-
53- /**
54- *
55- * @param value
56- * @returns
57- */
58- export const convertDateExcel = ( value : string | number | Date ) : Date => {
59- const getDate = new Date ( value )
60-
61- // UTC +7
62- const dateFromUTC = addHours ( getDate , 7 )
63- const result = startOfDay ( dateFromUTC )
64-
65- return result
66- }
67-
68- /**
69- *
70- * @param startDate
71- * @param endDate
72- * @returns
73- */
74- export const calculateAge = ( startDate : Date , endDate ?: Date ) : number => {
75- const newEndDate = endDate instanceof Date ? endDate : new Date ( )
76-
77- const interval = intervalToDuration ( {
78- start : new Date ( startDate ) ,
79- end : new Date ( newEndDate ) ,
80- } )
81-
82- return interval . years ? interval . years : 0
83- }
84-
85- /**
86- *
87- * @param startDate
88- * @param endDate
89- * @returns
90- */
91- export const calculateParseAge = ( startDate : Date , endDate ?: Date ) : string => {
92- const newEndDate = endDate instanceof Date ? endDate : new Date ( )
93-
94- const interval = intervalToDuration ( {
95- start : new Date ( startDate ) ,
96- end : new Date ( newEndDate ) ,
97- } )
98-
99- const result = `${ interval . years } years, ${ interval . months } months, ${ interval . days } days`
100- return result
22+ const formatString = 'dd-MM-yyyy HH:mm:ss'
23+ return formatDate ( value , formatString )
10124}
0 commit comments