Я пытаюсь отобразить отметку времени для пользователя, если комментарий был старше 24 часов. Следующий код делает это, но он все еще показывает мой (США) формат даты и времени для моих разработчиков в Пакистане. Вместо мм / дд / гг он должен отображать дд / мм / гг. Любая причина, почему это не работает правильно? Вот мой код

//get date of comment
          let commentDateUTC = item.createdOn;

          //convert it to local time
          let commentLocalTime = moment.utc(commentDateUTC).local().toLocaleString();

          //determine amount of time elapsed between comment and current time
          let nowObj = { 'now': moment(commentLocalTime).fromNow() }

          //determine if more than 24 hours has elapsed since the comment was created
          let currentTime = moment().local().toLocaleString();
          let elapsedTime = moment(currentTime).diff(commentLocalTime, 'hours');

          //if yes, concatenate the item.createdOn and the nowObj.now value
          if (elapsedTime >= 24) {
            nowObj.now = `${moment(commentLocalTime).format('l LT')} (${nowObj.now})`
          }
0
Dean Friedland 20 Дек 2019 в 18:58

1 ответ

Лучший ответ

Это ответ. Вы должны взять локаль из настроек браузера и затем установить ее с помощью moment.locale();. Я хотел бы, чтобы документы были немного более ясны в этом ....

      if (elapsedTime >= 24) {
        var locale = window.navigator.language;
        moment.locale(locale);
        nowObj.now = `${moment(commentLocalTime).format('l LT')} (${nowObj.now})`
      }
2
Dean Friedland 24 Дек 2019 в 13:09