Как объединить момент («от», «сейчас») с часовым поясом в привязке Vue - PullRequest
0 голосов
/ 23 октября 2019

Данные извлекаются прямо из базы данных \ firestore в vue \ nuxt. Это привязка к объекту.

Итак, log.Created - это временная область firebase, toDate () делает его датой, а затем \ now превращает его в «4 часа назад»

<td class="py-3">{{ log.Created.toDate() | moment("from", "now") }}</td>

Проблема в том, что это было не 4 часа назад, а сейчас, но UTC не дает мне смещение часового пояса.

Я попытался установить часовой пояс по умолчанию в плагине

import Vue from 'vue'
import VueMoment from 'vue-moment'
import moment from 'moment-timezone'

moment.tz.setDefault(moment.tz.guess())

Vue.use(
    VueMoment, {
    moment,
})

Но я думаю, что здесь могут быть некоторые линии, пересекающиеся ...

Что за недостающий фрагмент головоломки?

Больше отладочных данных

<td class="py-3">
  {{ convertDate(log.Created.toDate()) | moment("from", "now") }}<br/><br/>
  {{ convertDate(log.Created.toDate()) }} <br/><br/>
  {{ log.Created.toDate() }}
</td>

Функция:

convertDate: function(date){
  return moment(date).tz(moment.tz.guess());
}

... и вывод

4 hours ago

Tue Oct 22 2019 17:11:59 GMT-0400

Tue Oct 22 2019 17:11:59 GMT-0400 (Eastern Daylight Time)

1 Ответ

0 голосов
/ 23 октября 2019

Проблема заключалась в том, что код преобразования данных отсюда https://www.hanselman.com/blog/OnTheNightmareThatIsJSONDatesPlusJSONNETAndASPNETWebAPI.aspx

.AddHours (-8) был неправильным

Переход к ConvertFromUnixTimestamp на этом SO Как я могу преобразовать DateTimeна количество секунд с 1970 года? отлично сработало ...

Спасибо за помощь, Фил

...