2012-05-05 6 views
0

を働いていない私は、次のコードを持っている:ちょうど現在のタイムスタンプ、指定した日付のない1を出力変数とはmktime()

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

を。私はしかし、次の場合:

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

それは正しいタイムスタンプを出力し、1336203589.任意のアイデア?

答えて

4

はこれを試してみてください:

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

デモ:http://codepad.viper-7.com/lxTJbO

1

mktime関数は、時間値の配列を期待するので、あなたはちょうどあなたが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

を使用して、アレイを分割する必要があります。あなたはそれにstringを渡しています(あなたの理解のためにリストですが、PHPの解釈ツールではそうではありません)。あなたはそのようなリストに変換する必要があります。

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

を修正しました警告:mktime()は、パラメータ1がlong、array 3が3行目に指定されると予想しています。 ' –

+2

ああ、すみません。私はそこで間違いを犯した。あなたはパラメータのリストで関数を呼び出す必要があります、私は唯一のパラメータとしてリストを呼び出していました。あなたがする必要があるのは 'call_user_func_array( 'mktime'、explode( '、'、$ search));' –

関連する問題