1

私の配列には日付日月年が含まれており、年/日/月として結果が必要であり、1つの解決策が得られます$a1[0]$a1[1]$a1[2]

以下は私のコードです

<?php
  $a1 = array("01","10","2012");
  $result = implode("/",$a1);
  print $result;
?>

これは印刷されます01/10/2012が、この結果が必要です2012/01/10。implode 関数を使用して手動で配列を取得するにはどうすればよいですか?

年の初日を 2 番目、月を 3 番目に取るにはどうすればよいですか?

4

4 に答える 4

1

mktime関数を使用します。$timestamp がある場合は、日付関数を使用して好きなようにフォーマットできます。

$timestamp = mktime(0, 0, 0, $a1[1], $a1[0], $a1[2]);
echo date('y/m/d', $timestamp);
于 2012-09-17T07:17:41.623 に答える
1

array_reverse次のように使用できます。

$result = implode("/", array_reverse($a1));

これにより、逆の順序で新しい配列が作成されます。

于 2012-09-17T07:13:34.980 に答える
1

正確にこのパターン (要素の順序が逆になっている) を使用している場合は、このコード (YYYY/MM/DD) を使用して、その点で implode を単独で使用することはできません。

$a1 = array("01", "10", "2012");
$result = implode("/", array_reverse($a1));
print $result;

それ以外の場合は、正規表現 (YYYY/MM/DD) を使用します。

$a1 = array("01", "10", "2012");
$result = preg_replace('/(\d{2})\/(\d{2})\/(\d{4})/', '$3/$2/$1', implode("/", $a1));
print $result;

(YYYY/DD/MM) の形式が必要な場合は、次の形式を使用します。

$a1 = array("01", "10", "2012");
$result = preg_replace('/(\d{2})\/(\d{2})\/(\d{4})/', '$3/$1/$2', implode("/", $a1));
print $result;
于 2012-09-17T07:16:32.357 に答える
0

ループ (手動内破) を使用することもできます。

$a1 = array("01","10","2012");
$a1_length = sizeof($a1);
$date = '';
for ($i = $a1_length; $i > 0; $i--) {
    $date .= $a1[$i] . '/';
}
$date = rtrim($date, '/');

echo $date;
于 2012-09-17T08:59:41.253 に答える