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 回答