Я использую функцию javascript класса Date toLocaleDateString() в проекте, чтобы получить правильное форматирование в соответствии с локали пользователя, так просто. Однако день месяца не всегда прав (это на один день меньше, чем ожидалось). Кажется, я не понимаю, почему это происходит.Неправильная дата с функцией javascript toLocaleDateString()
Я построил jsfiddle, чтобы показать проблему. Это происходит с октября октября. Дата должна быть 3, как и во всех других месяцев, но как-то это 2.
https://jsfiddle.net/vincepunkrock/nh1u3ord/
Вот важная часть кода, и результат (My локаль «де»):
for(var i = 0; i < 12; i++)
{
var d = new Date(1993,i,3);
var n = d.toLocaleDateString();
document.getElementById("demo").innerHTML += n + "<br>";
}
3.1.1993
3.2.1993
3.3.1993
3.4.1993
3.5.1993
3.6.1993
3.7.1993
3.8.1993
3.9.1993
2.10.1993
3.11.1993
3.12.1993
У вас, ребята, есть представление о том, что происходит здесь, и что я могу сделать для его решения?
спасибо!
Когда в 1993 году в вашем регионе было закончено «летнее время» (или «летнее время»)? – Pointy
Это было на септе. Двадцать шестой. Действительно, когда я установил дату на 27-е, я получаю 26-е место в течение месяцев сентября и октября. Вы были на правильном пути! –
"* ... чтобы получить правильное форматирование в соответствии с локали пользователя ... *". Нет никакой гарантии, что это произойдет, поскольку * toLocaleDateString * полностью зависит от реализации, и некоторые реализации, похоже, полностью игнорируют пользовательские настройки. – RobG