PHP - Existe-t-il une méthode rapide, à la volée, pour tester une chaîne de caractères unique, puis préfixer un zéro non significatif?
Exemple:
$year = 11;
$month = 4;
$stamp = $year.add_single_zero_if_needed($month); // Imaginary function
echo $stamp; // 1104
Vous pouvez utiliser sprintf: http://php.net/manual/en/function.sprintf.php
<?php
$num = 4;
$num_padded = sprintf("%02d", $num);
echo $num_padded; // returns 04
?>
Il ne fera qu'ajouter le zéro s'il est inférieur au nombre de caractères requis.
Edit: Comme l'a souligné @FelipeAls:
Lorsque vous travaillez avec des nombres, vous devez utiliser %d
(plutôt que %s
), en particulier lorsqu'il existe un potentiel de nombres négatifs. Si vous n'utilisez que des nombres positifs, l'une ou l'autre option fonctionne correctement.
Par exemple:
sprintf("%04s", 10);
renvoie 0010sprintf("%04s", -10);
renvoie 0-10
Tandis que:
sprintf("%04d", 10);
renvoie 0010sprintf("%04d", -10);
renvoie -010
Vous pouvez utiliser str_pad
pour ajouter des 0
_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 ]] )
L'outil universel de formatage de chaîne, sprintf
:
$stamp = sprintf('%s%02s', $year, $month);