JSONオブジェクトから2012-12-31の形式で日付を取得し、それをわかりやすい値に変換して出力しようとしています。
var redeemableDate = item.Deal.RedeemableDate; //this is coming in the form of 2012-12-31
var redeemableDate = new Date(redeemableDate);
var rdDay = weekday[redeemableDate.getDay()]; //using an array with weekdays
var rdDate = redeemableDate.getDate();
var rdMonth = monthNames[redeemableDate.getMonth()]; //using an array with month names
var rdYear = redeemableDate.getFullYear();
response.write('Valid ' + rdDay + ' ' + rdDate + ' ' + rdMonth + ' ' + rdYear + ' ONLY');
それはすべてFirefoxとChromeで見つけてダンディに動作しますが、SafariとIE(これまでのところIE8でのみテストされています)はそれを好みません。
FFとChromeでは、期待どおりの結果が得られます。
2012年9月2日日曜日のみ有効
しかし、SafariとIEでは、次のようになります。
有効な未定義のNaN未定義のNaNのみ
Dateオブジェクトとして設定した後でredeemableDateにアラートを送信すると、Safariは「InvalidDate」を返し、IEは「NaN」を返します。これは明らかに問題があるところです。これらのブラウザの日付オブジェクトに自分の値を取り込む方法はありますか?