Javascriptのフォーマット日付妙
-
20-09-2019 - |
質問
私のロケール設定があります:
短い日付形式:DD / MM / YYYYを、長い日付形式はddはMMMMのYYYY
そうなぜ
var d = new Date("8/10/2009")
alert(d.toLocaleDateString());
投げる2009年8月10日
または
var d = new Date("15/10/2009");
2010年3月10日
を投げます解決
システムは、あなたが、なぜまだ取得していない場合でも、明らかであるから、8月10日の日付を取得する場所。しかし、それは「15/10/2009」から「2010年3月10日、」取得する方法を理解することはそれほど簡単です。だから、場合にあなたはそれを逃します:
Dateオブジェクトが既に最初の部分(15)ヶ月であるので、それは、「M / D / Y」の形式を使っていることを決定した瞬間を仮定する。それはそれをどのように扱うのでしょうか?何が起こるかというと、それは一年で始まり、日付「2009年1月1日」を構築することです。それは、あなたが行く10日間、そこを追加あなたの2010年3月を与えるために、15月に進みます。
「なぜ」それのために、あなたは特定のロケールの形式で出力にそれを得るためにtoLocaleDateString()
を呼び出すために持っていたことに気づきます。しかし、あなたのnew Date()
は、どこでも、ロケールのない同様の言及していません。だから、ちょうどそれが不変内蔵の文化だ使用しています。
他のヒント
の代わりにこれを試してみてください。
var myDate=new Date();
myDate.setFullYear(2010,0,14);
所属していません StackOverflow