From 264ebb1d4c8b6863941095e0c90c33598ca8a8ce Mon Sep 17 00:00:00 2001 From: Dhruwang Jariwala <67850763+Dhruwang@users.noreply.github.com> Date: Fri, 13 Dec 2024 15:57:58 +0530 Subject: [PATCH] fix: add time to exports (#4430) Co-authored-by: Anshuman Pandey <54475686+pandeymangg@users.noreply.github.com> --- .../components/ResponseTableColumns.tsx | 9 ++------- .../pipeline/lib/handleIntegrations.ts | 5 ++--- packages/lib/response/utils.ts | 3 ++- packages/lib/utils/datetime.ts | 18 ++++++++---------- 4 files changed, 14 insertions(+), 21 deletions(-) diff --git a/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/responses/components/ResponseTableColumns.tsx b/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/responses/components/ResponseTableColumns.tsx index 67a56d4542..1ffea58d11 100644 --- a/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/responses/components/ResponseTableColumns.tsx +++ b/apps/web/app/(app)/environments/[environmentId]/surveys/[surveyId]/(analysis)/responses/components/ResponseTableColumns.tsx @@ -10,7 +10,7 @@ import Link from "next/link"; import { getLocalizedValue } from "@formbricks/lib/i18n/utils"; import { processResponseData } from "@formbricks/lib/responses"; import { getContactIdentifier } from "@formbricks/lib/utils/contact"; -import { getFormattedDate, getFormattedTime } from "@formbricks/lib/utils/datetime"; +import { getFormattedDateTimeString } from "@formbricks/lib/utils/datetime"; import { QUESTIONS_ICON_MAP, VARIABLES_ICON_MAP } from "@formbricks/lib/utils/questions"; import { recallToHeadline } from "@formbricks/lib/utils/recall"; import { TResponseTableData } from "@formbricks/types/responses"; @@ -182,12 +182,7 @@ export const generateResponseTableColumns = ( size: 200, cell: ({ row }) => { const date = new Date(row.original.createdAt); - return ( -
-

{getFormattedDate(date)}

-

{getFormattedTime(date)}

-
- ); + return

{getFormattedDateTimeString(date)}

; }, }; diff --git a/apps/web/app/api/(internal)/pipeline/lib/handleIntegrations.ts b/apps/web/app/api/(internal)/pipeline/lib/handleIntegrations.ts index 00677ab02f..622d3ac46d 100644 --- a/apps/web/app/api/(internal)/pipeline/lib/handleIntegrations.ts +++ b/apps/web/app/api/(internal)/pipeline/lib/handleIntegrations.ts @@ -4,8 +4,7 @@ import { getLocalizedValue } from "@formbricks/lib/i18n/utils"; import { writeData as writeNotionData } from "@formbricks/lib/notion/service"; import { processResponseData } from "@formbricks/lib/responses"; import { writeDataToSlack } from "@formbricks/lib/slack/service"; -import { getFormattedDate } from "@formbricks/lib/utils/datetime"; -import { getFormattedTime } from "@formbricks/lib/utils/datetime"; +import { getFormattedDateTimeString } from "@formbricks/lib/utils/datetime"; import { parseRecallInfo } from "@formbricks/lib/utils/recall"; import { TAttributes } from "@formbricks/types/attributes"; import { TContactAttributes } from "@formbricks/types/contact-attribute"; @@ -64,7 +63,7 @@ const processDataForIntegration = async ( } if (includeCreatedAt) { const date = new Date(data.response.createdAt); - values[0].push(`${getFormattedDate(date)} ${getFormattedTime(date)}`); + values[0].push(`${getFormattedDateTimeString(date)}`); values[1].push("Created At"); } diff --git a/packages/lib/response/utils.ts b/packages/lib/response/utils.ts index 36482123d7..dc56c043d4 100644 --- a/packages/lib/response/utils.ts +++ b/packages/lib/response/utils.ts @@ -12,6 +12,7 @@ import { TSurvey } from "@formbricks/types/surveys/types"; import { getLocalizedValue } from "../i18n/utils"; import { processResponseData } from "../responses"; import { getTodaysDateTimeFormatted } from "../time"; +import { getFormattedDateTimeString } from "../utils/datetime"; import { sanitizeString } from "../utils/strings"; export const calculateTtcTotal = (ttc: TResponseTtc) => { @@ -497,7 +498,7 @@ export const getResponsesJson = ( jsonData.push({ "No.": idx + 1, "Response ID": response.id, - Timestamp: response.createdAt.toDateString(), + Timestamp: getFormattedDateTimeString(response.createdAt), Finished: response.finished ? "Yes" : "No", "Survey ID": response.surveyId, "Formbricks ID (internal)": response.contact?.id || "", diff --git a/packages/lib/utils/datetime.ts b/packages/lib/utils/datetime.ts index ad43dd1722..f86a91b79a 100644 --- a/packages/lib/utils/datetime.ts +++ b/packages/lib/utils/datetime.ts @@ -68,18 +68,16 @@ export const isValidDateString = (value: string) => { return date; }; -export const getFormattedDate = (date: Date) => { - return date.toLocaleString(undefined, { +export const getFormattedDateTimeString = (date: Date): string => { + const options: Intl.DateTimeFormatOptions = { year: "numeric", - month: "long", - day: "numeric", - }); -}; - -export const getFormattedTime = (date: Date) => { - return date.toLocaleString(undefined, { + month: "2-digit", + day: "2-digit", hour: "2-digit", minute: "2-digit", + second: "2-digit", hour12: false, - }); + }; + + return new Intl.DateTimeFormat("en-CA", options).format(date).replace(",", ""); };