我使用日期類toLocaleDateString()在項目中的JavaScript函數根據用戶的區域設置得到正確的格式,非常簡單。但是,這個月的日子並不總是正確的(比預期的要少一天)。我似乎無法理解爲什麼會發生這種情況。錯誤的日期與JavaScript函數toLocaleDateString()
我建立了一個jsfiddle來顯示問題。它發生在十月份。該日期應爲3像所有其他月份,但不知何故這是2
https://jsfiddle.net/vincepunkrock/nh1u3ord/
這裏是代碼的重要組成部分,結果(我的語言環境是「德」):
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
它是在9月。第26位。事實上,當我將日期設置爲27日時,我在9月和10月份獲得了26日。你在正確的軌道上! –
「* ...根據用戶的區域設置... *」獲取正確的格式。不能保證會發生,因爲* toLocaleDateString *完全依賴於實現,有些實現似乎完全忽略了用戶設置。 – RobG