From 15e76c7170aafab1b60172ae56013fe1612371a9 Mon Sep 17 00:00:00 2001 From: John Mizerek Date: Wed, 11 Mar 2026 11:59:43 -0700 Subject: [PATCH] Fix timezone display: append Z suffix to UTC dates in API responses JS new Date() was parsing dates without Z as local time, showing UTC values as-is. Adding Z suffix tells JS the dates are UTC so it converts to the user's local timezone automatically. Co-Authored-By: Claude Opus 4.6 --- api/orders/getDetail.cfm | 6 +++--- api/orders/getPendingForUser.cfm | 2 +- api/orders/history.cfm | 4 ++-- api/ratings/submit.cfm | 2 +- api/workers/ledger.cfm | 2 +- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/api/orders/getDetail.cfm b/api/orders/getDetail.cfm index 306af19..395a0e1 100644 --- a/api/orders/getDetail.cfm +++ b/api/orders/getDetail.cfm @@ -207,9 +207,9 @@ try { order["Tip"] = tip; order["Total"] = total; order["Notes"] = qOrder.Remarks; - order["CreatedOn"] = dateTimeFormat(qOrder.AddedOn, "yyyy-mm-dd HH:nn:ss"); - order["SubmittedOn"] = len(qOrder.SubmittedOn) ? dateTimeFormat(qOrder.SubmittedOn, "yyyy-mm-dd HH:nn:ss") : ""; - order["UpdatedOn"] = len(qOrder.LastEditedOn) ? dateTimeFormat(qOrder.LastEditedOn, "yyyy-mm-dd HH:nn:ss") : ""; + order["CreatedOn"] = dateTimeFormat(qOrder.AddedOn, "yyyy-mm-dd'T'HH:nn:ss") & "Z"; + order["SubmittedOn"] = len(qOrder.SubmittedOn) ? dateTimeFormat(qOrder.SubmittedOn, "yyyy-mm-dd'T'HH:nn:ss") & "Z" : ""; + order["UpdatedOn"] = len(qOrder.LastEditedOn) ? dateTimeFormat(qOrder.LastEditedOn, "yyyy-mm-dd'T'HH:nn:ss") & "Z" : ""; order["Customer"] = customer; order["ServicePoint"] = servicePoint; order["LineItems"] = lineItems; diff --git a/api/orders/getPendingForUser.cfm b/api/orders/getPendingForUser.cfm index 5436b6e..6550e45 100644 --- a/api/orders/getPendingForUser.cfm +++ b/api/orders/getPendingForUser.cfm @@ -88,7 +88,7 @@ try { "OrderTypeName": orderTypeName, "StatusID": row.StatusID, "StatusName": statusName, - "SubmittedOn": dateTimeFormat(row.SubmittedOn, "yyyy-mm-dd HH:nn:ss"), + "SubmittedOn": dateTimeFormat(row.SubmittedOn, "yyyy-mm-dd'T'HH:nn:ss") & "Z", "ServicePointID": row.ServicePointID, "Name": len(trim(row.Name)) ? row.Name : "", "Name": len(trim(row.Name)) ? row.Name : "", diff --git a/api/orders/history.cfm b/api/orders/history.cfm index 1fced3f..b937d1e 100644 --- a/api/orders/history.cfm +++ b/api/orders/history.cfm @@ -134,14 +134,14 @@ try { createdAt = ""; try { if (!isNull(row.AddedOn) && len(trim(row.AddedOn))) { - createdAt = dateTimeFormat(row.AddedOn, "yyyy-mm-dd'T'HH:nn:ss"); + createdAt = dateTimeFormat(row.AddedOn, "yyyy-mm-dd'T'HH:nn:ss") & "Z"; } } catch (any de) { createdAt = ""; } completedAt = ""; try { if (row.StatusID >= 4 && !isNull(row.LastEditedOn) && len(trim(row.LastEditedOn))) { - completedAt = dateTimeFormat(row.LastEditedOn, "yyyy-mm-dd'T'HH:nn:ss"); + completedAt = dateTimeFormat(row.LastEditedOn, "yyyy-mm-dd'T'HH:nn:ss") & "Z"; } } catch (any de) { completedAt = ""; } diff --git a/api/ratings/submit.cfm b/api/ratings/submit.cfm index 1058d20..555f0b1 100644 --- a/api/ratings/submit.cfm +++ b/api/ratings/submit.cfm @@ -69,7 +69,7 @@ try { "Direction": qRating.Direction, "Title": qRating.Title, "ForUserName": trim(qRating.ForFirstName & " " & qRating.ForLastName), - "ExpiresOn": dateTimeFormat(qRating.ExpiresOn, "yyyy-mm-dd HH:nn:ss") + "ExpiresOn": dateTimeFormat(qRating.ExpiresOn, "yyyy-mm-dd'T'HH:nn:ss") & "Z" }; // Include appropriate questions based on direction diff --git a/api/workers/ledger.cfm b/api/workers/ledger.cfm index 4955ba4..05032aa 100644 --- a/api/workers/ledger.cfm +++ b/api/workers/ledger.cfm @@ -53,7 +53,7 @@ try { "ActivationWithheldCents": row.ActivationWithheldCents, "NetTransferCents": row.NetTransferCents, "Status": row.Status, - "CreatedAt": dateTimeFormat(row.CreatedAt, "yyyy-MM-dd'T'HH:nn:ss") + "CreatedAt": dateTimeFormat(row.CreatedAt, "yyyy-MM-dd'T'HH:nn:ss") & "Z" }); }