ここでは比較的単純なJavaScriptですが、IEが私を嫌う理由はわかりません(他の人にあなたがどのように扱われたいかを私は思います)。
var newDate = new Date("2012, 11, 2 19:30:00:000");
alert(newDate);
これはChromeとFFで機能しますが、IEは「無効な日付」を出力します
これをいじる:http ://jsfiddle.net/k6yD6/
ここでは比較的単純なJavaScriptですが、IEが私を嫌う理由はわかりません(他の人にあなたがどのように扱われたいかを私は思います)。
var newDate = new Date("2012, 11, 2 19:30:00:000");
alert(newDate);
これはChromeとFFで機能しますが、IEは「無効な日付」を出力します
これをいじる:http ://jsfiddle.net/k6yD6/
日付コンストラクターに指定される文字列は、RFC2822またはISO8601形式の日付である必要があります。あなたの例ではそうではありません。次のことを試してください。
new Date("2012-11-02T19:30:00.000Z");
または代替コンストラクターを使用する:
new Date(2012, 11, 2, 19, 30, 0)
IEは、数値文字列でミリ秒と月をサポートしていないようです。これを試して:
new Date("November 2, 2012 19:30:00");
また
new Date(year, month, day, hours, minutes, seconds, milliseconds)
InternetExplorerでも同じ問題が発生していました。これは私が最初に日付と時刻をフォーマットしていた方法です、
function formatDateTime(date, formatString = 'MM/DD/YYYY hh:mm A') {
return moment(new Date(date)).format(formatString);
}
問題はにありましたnew Date()
。UTC
すでに日付だったので削除しました。だからそれはただ、
return moment(date).format(formatString);
これは、 IEを含むすべてのブラウザで機能しました。
使用する
var newDate = moment("2012, 11, 2 19:30:00:000").toDate();
alert(newDate);
これはIEでも機能します。
で作業するにはIE
、日付が適切な形式である必要があります。以下の形式を使用して、この同じ問題を修正しました。
var tDate = new Date('2011'+"-"+'01'+"-"+'01'); //Year-Month-day
var time = new Date("2021-12-01 17:02:12");
if(isNaN(time))
{
time= new Date(date.replace(/ /g,'T')+'.000Z');
}