On Monday September 25th from 10PM EDT - 12AM EDT (2AM UTC - 4AM UTC on September 26th), we will be performing system maintenance on the Firefox Accounts databases for two hours. During the maintenance window, there will be brief periods of a few minutes where users will not be able to login to their accounts. Please try again at a later time.

Vyhľadajte odpoveď

Vyhnite sa podvodom s podporou. Nikdy vás nebudeme žiadať, aby ste zavolali alebo poslali SMS na telefónne číslo alebo zdieľali osobné informácie. Nahláste prosím podozrivú aktivitu použitím voľby “Nahlásiť zneužitie”.

Learn More

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

  • 6 odpovedí
  • 0 má tento problém
  • 28 zobrazení
  • Posledná odpoveď od 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?

Vybrané riešenie

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

Čítať túto odpoveď v kontexte 👍 0

Všetky odpovede (6)

more options

Vybrané riešenie

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

Pomohla vám táto odpoveď?

more options

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

Pomohla vám táto odpoveď?

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()) ?

Pomohla vám táto odpoveď?

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...

Pomohla vám táto odpoveď?

more options

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

Pomohla vám táto odpoveď?

more options

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

Pomohla vám táto odpoveď?

Položiť otázku

Ak chcete odpovedať na príspevky, musíte sa prihlásiť do svojho účtu. Ak ešte nemáte účet, položte novú otázku.