这里唯一新的是使用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");
}
答案 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(东部夏令时)