Я имею дело с рендерингом на стороне сервера Node js и React js. Я столкнулся с проблемой. Я экономлю время в формате ISO на MongoDB, поэтому мне нужно преобразовать его в обычный формат, и результат преобразования отличается между сервером и клиентом из-за разницы часового пояса сервера и часового пояса клиента (мне нужно MM / dd / YYYY HH : формат мм). Конечно, response выдает предупреждение об этом. Я использовал moment.js и toLocalString (). Ребята, у вас есть какие-нибудь возможные решения этой проблемы?
Большое вам спасибо, ребята.





Как вы сказали, проблема связана с разницей между часовым поясом сервера и часовым поясом клиента. Один из способов исправить это - отобразить временную метку ISO на сервере, а затем заменить ее местным временем на стороне клиента в componentDidMount().
Документы React говорят, что componentWillMount() - единственный метод жизненного цикла, вызываемый серверным рендерингом, поэтому можно безопасно писать логику, связанную с часовым поясом, в componentDidMount().
document.querySelectorAll('...').forEach(el => {
const timestamp = Number(el.textContent)
const timezoneOffset = new Date().getTimezoneOffset() * 60 * 1000 // milliseconds
const localDate = new Date(timestamp - timezoneOffset)
el.textContent = formattedDate(localDate, 'my-custom-format') // use custom formatting here
})