Задать вопрос
alexbuki
@alexbuki
программист js

Почему функция возвращает разные даты на разных устройствах?

В браузерном коде использую такую функцию:
async function getDateFromBlock(blockNumber: number) {
		const walletProvider = appKit.provider!

		const provider = new BrowserProvider(walletProvider)

		const block = await provider.getBlock(blockNumber)
		let date = new Date(block!.timestamp * 1000)

                // вычитаю один день для корректности данных
		date = new Date(date.getTime() - 24 * 60 * 60 * 1000)

		return date.toLocaleString('en-US', { year: 'numeric', month: 'short', day: 'numeric', timeZone: 'UTC' })
	}


Как видите, использую UTC таймзону и в 99 процентов случаях функция работает нормально и возвращает данные за предыдущее дни.
67570c6d4f367710243943.png
Но у некоторых пользователей отражаются странные даты.
67570ca981014764109425.png
Вижу тут два варианта, где функция работает не как ожидается:
1. date.toLocaleString() - на каких-то машинах особые настройки даты и времени.
2.
const provider = new BrowserProvider(walletProvider)
- какой-то странный провайдер.

Буду рад, если поделитесь опытом, может кто-то сталкивался.
  • Вопрос задан
  • 701 просмотр
Подписаться 3 Средний 3 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы