React chart.js не обновляется после применения преобразования часового поясаJavascript

Форум по Javascript
Ответить
Anonymous
 React chart.js не обновляется после применения преобразования часового пояса

Сообщение Anonymous »

Я использую React.js и chart.js для отображения данных аналитики. Бэкэнд обеспечивает временные метки в UTC, и я преобразую эти временные метки в локальный часовой пояс пользователя перед рендерингом. данные. Вот функция, ответственная за получение и форматирование этих данных: < /p>
const getChartDataCampId = async (campId) => {
if (!campId) return;

handleLoader(true);
const now = Date.now();
let { from, to } = dateRange;

from = from ? new Date(from) : subDays(now, DEFAULT_DAYS_ON_CHART);
to = to ? new Date(to) : new Date(now);

if (Date.parse(from) > Date.parse(to)) {
setDateRangeErr("Invalid date range");
return;
}

setDateRangeErr("");
const userTz = Intl.DateTimeFormat().resolvedOptions().timeZone;

const fromInUserTZ = convertTZ(from, userTz);
const toInUserTZ = convertTZ(to, userTz);

const formattedFrom1 = fromInUserTZ.toLocaleString("sv-SE", {
timeZone: userTz,
}).replace(" ", "T");

const formattedTo1 = toInUserTZ.toLocaleString("sv-SE", {
timeZone: userTz,
}).replace(" ", "T");

try {
const params = {
campaignIds: campId,
from: formattedFrom1,
to: formattedTo1,
};

let emailSentChartData = await jobsApi.getChartData(null, campId, params);
let multiChannelChartData = await jobsApi.getMultichannelChartData(
user.email,
null,
params
);

const augRes = getAugmentRes({
clicks: emailSentChartData.clicks,
conversations: emailSentChartData.conversations,
meetings: emailSentChartData.meetings,
emailsSent: emailSentChartData?.dailySends,
leadsGenerated: emailSentChartData?.dailyLeads,
emailsDelivered: emailSentChartData?.dailyDelivered,
emailsOpened: emailSentChartData?.dailyOpened,
allReplies: emailSentChartData?.allReplies,
repliedEmails: emailSentChartData?.repliedEmails,
unSubscribeCount: emailSentChartData?.unSubscribeCount,
webSiteVisit: emailSentChartData?.webSiteVisit,
replies: emailSentChartData?.replies,
pageViews: emailSentChartData?.pageViews,
videoViews: emailSentChartData?.videoViews,
avgVideoViews: emailSentChartData?.avgVideoViews,
avgVideoViewPercentage: emailSentChartData?.avgVideoViewPercentage,
invitationSent: multiChannelChartData.dailyInvitationSends,
invitationAccepted: multiChannelChartData.dailyAccepted,
invitationRejected: multiChannelChartData.dailyRejected,
messageSent: multiChannelChartData.dailyMessagesSent,
messageSeen: multiChannelChartData.messageSeen,
params,
});

if (filterData === "Total") {
const totalDataRes = await jobsApi.getLeadsTotalData([campId], dateRange);
const augResTotal = getAugmentResTotal({
clicks: totalDataRes?.clicks,
emailsOpened: totalDataRes?.opens,
params,
});

augRes.clicks = augResTotal.clicks;
augRes.emailsOpened = augResTotal.emailsOpened;
}

handleLoader(false);
return augRes;
} catch (err) {
console.log("Error fetching chart data!");
console.log("Error here", err);
}
};
< /code>
Что я хочу:
Я хочу показать данные диаграммы в локальном часовом поясе, а не UTC, используя chart.js в React. < /p>
Что происходит:
После преобразования времени я делаю не так? Как мне это исправить?


Подробнее здесь: https://stackoverflow.com/questions/796 ... conversion
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»