Este site irá ter funcionalidade limitada enquanto fazemos manutenção para melhorar a sua experiência. Se um artigo não resolve o seu problema e quiser colocar uma questão, temos a nossa comunidade de apoio à espera de o ajudar em @FirefoxSupport no Twitter, /r/firefox no Reddit.

Pesquisar no apoio

Evite burlas no apoio. Nunca iremos solicitar que telefone ou envie uma mensagem de texto para um número de telefone ou que partilhe informações pessoais. Por favor, reporte atividades suspeitas utilizando a opção "Reportar abuso".

Saber mais

Date.prototype.toJSON() and Date.prototype.toISOString() discrepancy

  • 6 respostas
  • 0 têm este problema
  • 14 visualizações
  • Última resposta por Mathias Frost

more options

console.log(new Date().toJSON()); console.log(new Date().toISOString());

// Actual output: // 2023-05-27T04:21:13.004Z // 2023-05-27T06:21:13.005Z

// Expected output: // 2023-05-27T06:21:13.004Z // 2023-05-27T06:21:13.005Z

This happens only on Firefox and Firefox Developer Edition on one of my PCs and not the other. Firefox is version 113.0.2 (64-bit) and DE is 114.0b9 (64-bit)

Anyone experienced this before?

console.log(new Date().toJSON()); console.log(new Date().toISOString()); // Actual output: // 2023-05-27T04:21:13.004Z // 2023-05-27T06:21:13.005Z // Expected output: // 2023-05-27T06:21:13.004Z // 2023-05-27T06:21:13.005Z This happens only on Firefox and Firefox Developer Edition on '''one''' of my PCs and '''not''' the other. Firefox is version 113.0.2 (64-bit) and DE is 114.0b9 (64-bit) Anyone experienced this before?

Solução escolhida

Do you have enabled "Resist Fingerprinting" if you check this pref on the about:config page?

Ler esta resposta no contexto 👍 0

Todas as respostas (6)

more options

Solução escolhida

Do you have enabled "Resist Fingerprinting" if you check this pref on the about:config page?

more options

Setting `privacy.resistFingerprinting` to `true` fixed the discrepancy, but... why?

more options

Note that best is to keep this pref set to false as this can cause issues.

I can't replicate this, with both RFP disabled and enabled I get the same UTC output as expected. Does it make a difference what timezone is set in the OS ?

Do you get the correct local time via console.log(new Date()) ?

more options

Yeah, I noticed some undesirable side-effects from having that to true, but weirdly enough, when turning it back to false, the issue is still fixed:

console.log(new Date()) // Date Sun May 28 2023 18:49:13 GMT+0200 (Central European Summer Time)

console.log(new Date().toJSON()) // 2023-05-28T16:49:51.947Z

console.log(new Date().toISOString()) // 2023-05-28T16:50:10.427Z

Seconds diff is because I executed them individually.

End even werider (or not, depending on whether or not DE and normal Firefox share config), on Developer Edition, where I have not toggled privacy.resistFingerprinting, the issue is also fixed:

console.log(new Date()) // Date Sun May 28 2023 18:53:43 GMT+0200 (Central European Summer Time)

console.log(new Date().toJSON()) // 2023-05-28T16:53:54.024Z

console.log(new Date().toISOString()) // 2023-05-28T16:54:03.475Z

Not sure what to make of this :D Maybe some weird, edge-case bug...

more options

Did you get the local time in the case where it went wrong ?

more options

Yes, new Date() and new Date().toISOString() gave correct time