46

ここでは比較的単純なJavaScriptですが、IEが私を嫌う理由はわかりません(他の人にあなたがどのように扱われたいかを私は思います)。

var newDate = new Date("2012, 11, 2 19:30:00:000");
alert(newDate);

これはChromeとFFで機能しますが、IEは「無効な日付」を出力します

これをいじる:http ://jsfiddle.net/k6yD6/

4

6 に答える 6

64

日付コンストラクターに指定される文字列は、RFC2822またはISO8601形式の日付である必要があります。あなたの例ではそうではありません。次のことを試してください。

new Date("2012-11-02T19:30:00.000Z");

または代替コンストラクターを使用する:

new Date(2012, 11, 2, 19, 30, 0)
于 2012-10-26T17:26:25.907 に答える
9

IEは、数値文字列でミリ秒と月をサポートしていないようです。これを試して:

new Date("November 2, 2012 19:30:00");

また

new Date(year, month, day, hours, minutes, seconds, milliseconds)
于 2012-10-26T17:31:40.373 に答える
3

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を含むすべてのブラウザで機能しました。

于 2017-03-16T07:14:57.373 に答える
3

使用する

var newDate = moment("2012, 11, 2 19:30:00:000").toDate();
alert(newDate);

これはIEでも機能します。

于 2018-12-06T14:25:04.617 に答える
1

で作業するにはIE、日付が適切な形式である必要があります。以下の形式を使用して、この同じ問題を修正しました。

var tDate = new Date('2011'+"-"+'01'+"-"+'01'); //Year-Month-day
于 2015-12-30T07:01:08.940 に答える
0
var time = new Date("2021-12-01 17:02:12");
if(isNaN(time))
{
    time= new Date(date.replace(/ /g,'T')+'.000Z');
}
于 2021-12-01T08:02:38.290 に答える