PHP - 1文字の文字列をテストしてから先頭にゼロを付ける簡単な方法はありますか?
例:
$year = 11;
$month = 4;
$stamp = $year.add_single_zero_if_needed($month); // Imaginary function
echo $stamp; // 1104
あなたはsprintfを使用することができます: http://php.net/manual/en/function.sprintf.php
<?php
$num = 4;
$num_padded = sprintf("%02d", $num);
echo $num_padded; // returns 04
?>
必要な文字数より少ない場合にのみゼロを追加します。
編集:@FelipeAlsが指摘するように:
数値を扱うときは、特に負の数が発生する可能性があるときは、(%d
ではなく)%s
を使用する必要があります。正数のみを使用している場合は、どちらの方法でもうまくいきます。
例えば:
sprintf("%04s", 10);
は0010を返しますsprintf("%04s", -10);
は0〜10を返します
どこに:
sprintf("%04d", 10);
は0010を返しますsprintf("%04d", -10);
は-010を返します
0を追加するために str_pad
を使うことができます
str_pad($month, 2, '0', STR_PAD_LEFT);
string str_pad ( string $input , int $pad_length [, string $pad_string = " " [, int $pad_type = STR_PAD_RIGHT ]] )
文字列フォーマット用の万能ツールsprintf
:
$stamp = sprintf('%s%02s', $year, $month);