処理している一部のデータ(2000行以上のデータ)に問題があることに気づきました。
問題は非常に奇妙です:コードは正常に機能します!JavaScriptが正しい日付を生成できないときに特定の日付(この場合は2011年1月8日)に達するまで?
だから、説明するために:私は'dd / mm / yyyy'の形式の文字列を取り、実行しています(これは機能しません):
var date = '01/08/2011'.split('/');
var milliseconds = new Date(date[2], parseInt(date[1]) - 1, date[0]).getTime();
=> 1291161600000new Date(1291161600000);
=>2010年12月1日水曜日00:00:00GMT+ 0000(GMT)
...しかし、その正確なコードは、2011年8月1日より前のどの日付でも正常に機能しますか?
だから、もう一度やり直してください29/07/2011
...
var date = '29/07/2011'.split('/');
var milliseconds = new Date(date[2], parseInt(date[1]) - 1, date[0]).getTime();
=> 1311894000000new Date(1311894000000);
=>2011年7月29日金曜日00:00:00GMT+ 0100(BST)
唯一の違いは、返される(GMT)値と(BST)値です。これは、ロケールの問題を示唆しています。しかし、なぜそれが発生するのでしょうか。また、それを回避するためにコードを修正するにはどうすればよいでしょうか。
あなたが私に与えることができるどんな助けにも感謝します。