2017-03-29 55 views
0

請幫我理解這個代碼: -無法理解這段代碼[JavaScript中,日期和時區的獲取]

function seconds_with_leading_zeros(dt) 
{ 
    return /\((.*)\)/.exec(new Date().toString())[1]; 
} 

dt = new Date(); 
console.log(seconds_with_leading_zeros(dt)); 

dt = new Date(1989, 10, 1); 
console.log(seconds_with_leading_zeros(dt)); 

這是假設顯示用戶的時區。

+0

它的內部幷包括第一()一對將時區返回所有的字符。雖然我不知道它爲什麼傳遞一個日期對象,因爲它沒有被使用。 – Blindman67

+0

奇怪。你的函數需要一個'dt'參數,但它沒有被使用 – Mtihc

+0

@Mtihc我沒有創建這個東西,我在W3resources中發現了這個,這就是我對這件事很困惑的原因之一加上我不明白他們的return語句代碼 –

回答

0

new Date().toString()返回一個字符串,如"Wed Mar 29 2017 15:37:26 GMT+0200 (West-Europa (zomertijd))"時區位於圓括號()內。

return /\((.*)\)/.exec("date and time (timezone)")[1];返回括號內的任何內容。在這種情況下,它會返回字"timezone"

這是一樣好,我可以解釋一下:)

+0

你能解釋我這部分? **************** return /\((.*)\)/.exec************以及爲什麼他們訪問其索引1項??? –

+0

這是'/正則表達式/'。這個正則表達式'(。*)'將匹配任何東西。這個正則表達式'\((。*)\)'將匹配圓括號內的任何內容。 'exec'將使用正則表達式評估給定的字符串。它會返回一個數組。數組的第一個元素(在索引0處)是整個事情。數組的第二個元素(在索引1處)是第一個匹配項。你想要第一場比賽,因爲這就是圓括號內的內容。 – Mtihc