toLocaleDateString отличается, используя тот же язык

Я использую этот код.

date.toLocaleDateString('pt-BR')
  • В моем браузере Chrome результат: 13.09.2016
  • Когда я запускаю тесты в местном масштабе.: 2016-09-13
  • Когда я провожу тесты в Circle CI.: 13.09.2016

Что это происходит?

Ps.: Я использую Jest и JSDom для своих тестов.

3 ответа

Решение

Использовать toLocaleDateString параметры для установки фиксированного формата.

var date = new Date();
var options = { year: 'numeric', month: '2-digit', day: '2-digit' };
console.log(date.toLocaleDateString('pt-BR', options));

Вы можете добавить "LC_ALL="en_US.UTF-8" в параметр test в package.json, чтобы исправить это.

      "test": "LC_ALL=\"en_US.UTF-8\" npm run test",

Почему бы не использовать moment.js? Это простая и минималистичная библиотека для работы с датами на стороне сервера и на стороне клиента, локали зависят от системы и еще нескольких вещей, используют момент, и вы будете уверены, что правильный формат moment.js

Другие вопросы по тегам