0

私は次のコードを持っています:

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

これは、指定された日付のタイムスタンプではなく、現在のタイムスタンプを出力するだけです。しかし、私が次のことをした場合:

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

正しいタイムスタンプ1336203589を出力します。何かアイデアはありますか?

4

3 に答える 3

4

これを試して:

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

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

于 2012-05-05T19:13:26.490 に答える
1

mktimeは時間値の配列を想定しているため、配列をexplodeoderで分割する必要があります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]);
于 2012-05-05T19:09:09.543 に答える
1

これは、整数のリストをに指定する必要があるためですmktime。あなたはそれにaを渡してstringいます(あなたの理解のためにこれはリストですが、phpインタープリターにはそうではありません)。あなたはそれをそのようなリストに変換する必要があります:

$search = '3,39,49,5,5,2012';
$search = mktime(explode(',', $search));
echo $search;
于 2012-05-05T19:09:21.633 に答える