在Javascript中根据日期查找日期

时间:2012-06-28 18:35:15

标签: javascript

这里唯一新的是使用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");

}

3 个答案:

答案 0 :(得分: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要求日期位于specific format。如果用户在aText控件中键入的值与此格式不匹配,那么您将获得运行时异常,或者构造的Date对象将不具有您期望的值。

答案 1 :(得分: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"

答案 2 :(得分:0)

您不需要eval ...几乎任何正常格式化的日期都应该有效。

new Date('June 28, 2006') 2006年6月28日星期三00:00:00 GMT-0400(东部夏令时)