日付の書式を設定するためのjavascriptコードを書きたいと思っていますが、Firefox上で動作させるのに問題があります。Javascript JavaScriptからFirefoxに異なる出力を与える文字列の日付
私が入力したフォームは05/01/13
(mm/dd/yy)で、2013-05-01
(yyyy/mm/dd)が必要です。そのために
、私がやったことは、このようなものです:
var formDate = document.getElementById("start").value;
var myDate = new Date(formDate);
var startDate = new Date();
startDate.setMonth(myDate.getMonth() + 1);
startDate.setFullYear(myDate.getFullYear());
var FormattedDate = startDate.getFullYear() + "-" + ((startDate.getMonth() <= 10) ? "0" : "") + startDate.getMonth() + "-01"; // the day is always 01
alert(FormattedDate);
あなたがここに両方のブラウザでそれを試すことができます:GoogleのChromeでhttp://jsfiddle.net/j4BLH/
を、このコードは、月のための一例2013-05-01
を掲載していますFirefoxでは、私は1913-05-01
を持っています。
私は"20" + startDate.getYear()
のようなものを書いている可能性があることは知っていますが、なぜ結果がChromeからFirefoxに異なるのか不思議でしたか?もし私がここに貼り付けたコードを書く良い方法があれば、私に教えてください:)
ありがとう! specから
このスレッドをチェックする: http://stackoverflow.com/questions/8681534/why-does-javascript-evaluate-a-2-digit-year-of-00-as-1900-instead-of-2000 – MasNotsram
日付が1970年代からミリ秒単位で保存されているため、firefoxのようなものは変わったようです。だから、1913年を返すべきではない。[(ECMAScriptリファレンス)](http://objjob.phrogz.net/js/object/224) –
@SpAmはリンクに感謝しているが、Chrome&Firefoxこれに対して異なる行動をとる。 –