0

ここで新しいのは、次の使用だけですeval()

myDate=new Date(eval('"'+aText.value+'"'))

引用符で囲まれた日付が必要ですが、ボックスに表示されているように、日付はありません。したがって、引用符を追加します。しかし、これは単なる文字列になり、Dateオブジェクトが必要になります。したがってeval()、変更を加えるために使用します。

それは正しい答えを与えていません

function getTheDay(aText)
{

    myDays = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
    console.log(eval('"' + aText.value + '"'));
    myDate = new Date(eval('"' + aText.value + '"'))
    console.log(myDate)
    document.write(myDays[myDate.getDay()], "day");

}
4

3 に答える 3

1

試す:

function getTheDay(dateText) {
    myDays = [
        "Sunday",
        "Monday",
        "Tuesday",
        "Wednesday",
        "Thursday",
        "Friday",
        "Saturday",
        "Sunday"];

    return myDays[new Date(dateText).getDay()];
}

document.write(getTheDay(aText.value));

を使用して、これを過度に複雑にしていeval()ます。これを機能させるために使用する必要がある理由はまったくありませんeval()

JavaScript は、日付が特定の形式であると想定していることに注意してください。ユーザーがコントロールに入力した値がaTextこの形式と一致しない場合は、実行時例外が発生するか、構築された Date オブジェクトに期待する値が含まれません。

于 2012-06-28T18:38:12.853 に答える
1

なぜあなたはやっているのeval('"'+aText.value+'"')ですか?

aText.valueは文字列です。あなたはただ行うことができますnew Date(aText.value)

var myDays = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"];
var myDate = new Date(aText.value);
console.log(myDays[myDate.getDay()]);

:変数に「引用符を追加」して文字列を作成する必要はありません。それは変数の仕組みではありません。

var a = 'hello world';
var b = a;  // a is a string variable.  no need to add quotes or "eval"
于 2012-06-28T18:39:20.443 に答える
0

その必要はありませんeval...ほとんどの通常の形式の日付が機能するはずです。

new Date('June 28, 2006') 2006 年 6 月 28 日水曜日 00:00:00 GMT-0400 (東部夏時間)

于 2012-06-28T18:37:59.887 に答える