diff --git a/packages/nc-gui/composables/useMultiSelect/convertCellData.ts b/packages/nc-gui/composables/useMultiSelect/convertCellData.ts index aa51b2c2d1..3973c75bf7 100644 --- a/packages/nc-gui/composables/useMultiSelect/convertCellData.ts +++ b/packages/nc-gui/composables/useMultiSelect/convertCellData.ts @@ -56,7 +56,7 @@ export default function convertCellData( } return null case UITypes.Date: { - const parsedDate = dayjs(value, column?.meta?.date_format ?? 'YYYY-MM-DD') + const parsedDate = dayjs(value, parseProp(column?.meta)?.date_format ?? 'YYYY-MM-DD') if (!parsedDate.isValid()) { if (isMultiple) { return null @@ -67,7 +67,10 @@ export default function convertCellData( return parsedDate.format('YYYY-MM-DD') } case UITypes.DateTime: { - const parsedDateTime = dayjs(value) + const parsedDateTime = dayjs( + value, + `${parseProp(column?.meta)?.date_format ?? 'YYYY-MM-DD'} ${parseProp(column?.meta)?.time_format ?? 'HH:mm'}`, + ) if (!parsedDateTime.isValid()) { if (isMultiple) { return null diff --git a/packages/nc-gui/composables/useMultiSelect/index.ts b/packages/nc-gui/composables/useMultiSelect/index.ts index cbd577cc8f..d8c43a8ff9 100644 --- a/packages/nc-gui/composables/useMultiSelect/index.ts +++ b/packages/nc-gui/composables/useMultiSelect/index.ts @@ -28,6 +28,7 @@ import { useI18n, useMetas, useUndoRedo, + parseProp, } from '#imports' const MAIN_MOUSE_PRESSED = 0 @@ -173,7 +174,7 @@ export function useMultiSelect( }) } - if ([UITypes.DateTime, UITypes.CreatedTime, UITypes.LastModifiedTime].includes(columnObj.uidt)) { + if ([UITypes.DateTime, UITypes.CreatedTime, UITypes.LastModifiedTime].includes(columnObj.uidt as UITypes)) { // remove `"` // e.g. "2023-05-12T08:03:53.000Z" -> 2023-05-12T08:03:53.000Z textToCopy = textToCopy.replace(/["']/g, '') @@ -194,14 +195,15 @@ export function useMultiSelect( // therefore, here we reformat to the correct datetime format based on the meta textToCopy = d.format(constructDateTimeFormat(columnObj)) - if (!dayjs(textToCopy).isValid()) { + if (!d.isValid()) { // return empty string for invalid datetime return '' } } if (columnObj.uidt === UITypes.Date) { - const dateFormat = columnObj.meta?.date_format + const dateFormat = parseProp(columnObj.meta)?.date_format + if (dateFormat && isDateMonthFormat(dateFormat)) { // any date month format (e.g. YYYY-MM) couldn't be stored in database // with date type since it is not a valid date