PHP добавить ведущие нули к числу или к дате

Добавить ведущие нули к числу или к дате довольно часто встречаемая задача.
Также нередко люди даже не знают как это правильно называется: говорят как ноль в начале или ноль спереди. На английском это называется leading zero.

Ведущие нули для чисел

str_pad

Есть замечательная функция str_pad(), и одной из областей ее применения является подстановка ведущих нулей к числу.

1
2
3
4
<?php
$number = '1';
echo str_pad($number, 5, '0', STR_PAD_LEFT);
// "00001"

Все просто, но если что непонятно, то можете почитать документацию по ссылке вверху.

printf и sprintf

Можно использовать sprintf для этих целей, например так:

1
2
3
<?php
echo sprintf('%05d', 1);
// "00001"

Ведущие нули для дат

str_pad

Если нужно добавить ведущий ноль к дню или месяцу, который по какой-то причине оказался в переменной, то можем использовать функцию str_pad

1
2
3
4
5
<?php
$number = '1';
echo str_pad($number, 2, '0', STR_PAD_LEFT);
// "01"
?>

date для даты в формате unix

Если дата в формате unix и будем использовать функцию date то укажем нужные модификаторы:

1
2
3
<?php
echo date('d.m.Y');
//01.01.2019

Нужными тут являются d и m: день и месяц с ведущими нолями

PHP DateTime

Тут все точно также как и в случае с date (модификаторы то ведь одинаковые)

1
2
3
<?php
$d = new DateTime();
echo $d->format("d.m.Y");

9 thoughts on “PHP добавить ведущие нули к числу или к дате

  1. Спасибо большое! Долго бился с этим, все пытался числа в строки переводить, и потом обратно, не получалось, а тут оказывается просто все)

  2. А я всегда в датах делал

    for($i=1; $i<32,$i++)
    {
    if($i < 10) { $i = '0'.$i; }
    }

    Придумал за 20 секунд года з назад, до сих под не задумывался о лучшем 🙂 Автору спс!

  3. «Если Вы, как и все здоровые люди храните даты в форматы unix» — здоровые люди хранят дату в БД как дату, для этого и есть спец тип MySQL date. Хотя, конечно, в некоторых случаях можно и как timestamp. А за пример спасибо — он выдается первым при поиске в Гугле по «ведущие нули php».

  4. Илья, тебе в статье попытались объяснить уже, ненавязчиво попытались. Нормальные люди хранят даты в таймштампе, а те кто особо мозг не включает, использует поле date и другие.

  5. Чтоб нули попали в БД, необходимо поле делать varchar либо char по количеству символов в передаваемом номере.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*
*