JavaScript 関数に '30/05/1981' などの文字列があります。こんなデートに変えてしまうなんて…
new Date(arguments.Value)
しかし、Chrome で日付を使用しようとすると、「無効な日付」エラーが発生します。
他のすべてのブラウザでは問題なく動作します。
Chromeでこれを行うにはどうすればよいですか?
JavaScript 関数に '30/05/1981' などの文字列があります。こんなデートに変えてしまうなんて…
new Date(arguments.Value)
しかし、Chrome で日付を使用しようとすると、「無効な日付」エラーが発生します。
他のすべてのブラウザでは問題なく動作します。
Chromeでこれを行うにはどうすればよいですか?
私はブラウザーに依存しません (クライアントの日付形式が異なる場合があるため)。
日付パーサーを作成するか、datejsやSugarJSなどの日付ライブラリを使用することをお勧めします
これは、日付が次の形式である必要があるためですMM/DD/YYYY
。
new Date("30/05/1981".replace(/^(\d{2})\/(\d{2})/, "$2/$1"));
ただしYYYY/MM/DD
、正常に動作するはずです:
new Date("30/05/1981".split("/").reverse().join("/"));
DD/MM/YYYY
これはvsの競合に由来し、MM/DD/YYYY
Chromeは後者のみを使用して解決します。日付を別の方法で入力するか、文字列の一致を行う必要があります。
var dateMatch = arguments.Value.match(/(\d\d)\/(\d\d)\/(\d\d\d\d)/);
new Date(+dateMatch[3], +dateMatch[2], +dateMatch[1]);