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