Поскольку эта тема довольно сложна, я не настаиваю на том, чтобы мой ответ указывал на точную причину, но одна из причин может заключаться в чем-то из следующего:
.toLocaleString
, как известно, работаетпротиворечиво между браузерами. Это происходит потому, что для этой функции нет особо строгих спецификаций. Проверьте этот ответ .
Поскольку @TJ Crowder правильно указывает в своем комментарии , спецификации значительно эволюционировали в более новых версиях спецификаций скрипта ECMA.
Тем не менее, по историческим или другим причинам вывод .toLocaleString
все еще в значительной степени зависит от браузера. Хотя он работает очень согласованно для некоторых языков (например, в моем случае вывод локалей fr
, ru
& en-AU
был точно одинаковым для Firefox, Chrome и даже Safari), в случаедругих языков (в моем случае locales jp
, km-KH
& sq-AL
выдало 3 разные вещи в 3 разных браузерах).
Я не могу найти ссылку сейчас, но в какой-то момент яВыяснилось, что, помимо прочего, разница в том, что Firefox пытается использовать языковые предпочтения вашей ОС, в то время как Chrome использует языковые предпочтения, установленные (или автоматически определяемые) специально для Chrome.
В случае, если вы используете(или, возможно, планируют) SSR, это может создать еще одну проблему, поскольку в зависимости от вашего набора инструментов формат может быть выбран из серверной среды, например, в Node.js .
Если вы хотите контролировать точный формат выходных данных, то вам очень нравится и ценится здесь, так что SO moment.js может помочь вам в этом.