2012-05-05 86 views
0

我有以下代碼:變量和mktime()不工作

$search = '3,39,49,5,5,2012'; 
$search = mktime($search); 
echo $search; 

這只是輸出當前時間戳,而不是一個用於指定的日期。但是,如果我執行以下操作:

$search = mktime(3,39,49,5,5,2012); 
echo $search; 

它輸出正確的時間戳1336203589.任何想法?

回答

1

mktime預計時間值的數組,所以你剛纔分裂與explode您的陣列奧德preg_split

$search = '3,39,49,5,5,2012'; 
$t = explode(',', $search); 
$search = mktime($t[0], $t[1], $t[2], $t[3], $t[4], $t[5]); 
+0

我糾正錯誤 –

1

那是因爲你需要指定整數的列表mktime。你正在向它傳遞一個string(爲了你的理解,這是一個列表,但對於php解釋器來說不是這樣)。你需要將其轉換爲這樣的列表:

$search = '3,39,49,5,5,2012'; 
$search = mktime(explode(',', $search)); 
echo $search; 
+0

這是不行的,我剛剛得到的錯誤'警告:mktime()期望參數1很長,在第3行給出的數組' –

+2

哦,我很抱歉。我在那裏犯了一個錯誤。你需要用一個參數列表來調用函數,我用一個列表作爲唯一參數調用它。你需要做的是'call_user_func_array('mktime',explode(',',$ search));'' –