2012-06-28 63 views
0
日當天

這裏唯一的新東西是利用eval()找到根據的Javascript

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"); 

} 
+2

請勿使用eval()!它構成了一個危險的安全風險。 –

+0

http://www.w3schools.com/jsref/jsref_obj_date.asp –

+0

但eval會評估我的約會嗎? –

回答

0

你不需要eval爲......幾乎所有的正常格式的日期應該工作。

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

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對象不會具有您期望的值。

+0

嘿它doea工作...只是在最後一行其document.write(getTheDay(aText) –

+0

如果'aText'已經是一個字符串,那麼是的,只是'aText'。如果'aText'指的是''元素,那麼它需要是'aText.value'。 – cdhowie

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" 
+0

什麼是'var myDate = myDate;'應該這樣做? – cdhowie

+0

@cdhowie:這將是一個錯字X_X –

+0

感謝名單... 這給了我寫的代碼 功能getTheDay(aText){ myDays = [ 「星期日」, 「星期一」, 「星期二」, 「星期三」, 「星期四」, 「星期五」, 「星期六」, 「星期天」]; (myDays [new Date(aText).getDay()],「My day」) return myDays [new Date(aText.value).getDay()]; } –