В firebase-функции момент. js отправка неверного времени в mailgun - PullRequest
0 голосов
/ 02 мая 2020

В функции firebase я отправляю электронную почту пользователям, используя mailgun на каком-то триггере в базе данных firebase с текущим временем в момент. js как это,

 if (partnerEmail) {
    console.log(`online class email to partner`)
    let emailData = {
        recipient: partnerEmail,
        date: moment(date * 1000).format('MMMM Do YYYY'),
        time: moment(new Date()).format('h:mm:ss a'),
    };
    emailUtils.onlineClassPartner(emailData)
}

но свойство time дает неправильные часы, минуты, секунды.

Текущее время 05: 48: 00 PM , но в электронном письме оно показывает 11: 49: 59 AM

1 Ответ

0 голосов
/ 02 мая 2020

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

Чтобы настроить подходящее время, которое будет иметь смысл для ваших пользователей, вам, вероятно, нужно будет узнать, в каком часовом поясе они находятся (не идеально) заставлять людей путешествовать), чтобы отобразить им дату в соответствующей зоне.

Содержимое электронной почты - stati c, и дату нельзя автоматически отформатировать в текущем часовом поясе пользователя.

Когда используя moment(new Date()).format('h:mm:ss a') для ваших функций, он будет установлен на дату / час часового пояса, где установлен ваш сервер.

У вас есть два варианта:

  1. Получить для каждого из у вашего пользователя их часовой пояс с регулярным интервалом, а затем отформатируйте дату соответственно, , компенсируя разницу с UT C
  2. Укажите для своих пользователей, что показанная им дата выражается в GMT + X (Например, если большинство ваших клиентов находятся в Китае, тогда может быть очевидно, что они отображают дату, которая выражается в GMT +8)
...