Фукция за връщане на двуцифрено число

C++ JAVA
User avatar
Ev0luti0N
Много Редовен
Много Редовен
Posts: 1971
Joined: Sat Jul 10, 2010 9:40 pm
Answers: 130

Фукция за връщане на двуцифрено число

Post by Ev0luti0N » Sat Jun 04, 2011 6:21 pm

Знаете ли дали има фукция която вместо 5 да връща 05 вместо 9 да връща 09 и т.н. Обаче когато е 20 да си връща 20. Благодаря! :)

alex3
Турист
Турист
Posts: 486
Joined: Mon Jul 12, 2010 2:58 pm
Answers: 46

Post by alex3 » Sat Jun 04, 2011 6:27 pm

[php]$num = 1;

if(strlen($num) < 2)
{
$num = 0 . $num;
}[/php]

User avatar
Ev0luti0N
Много Редовен
Много Редовен
Posts: 1971
Joined: Sat Jul 10, 2010 9:40 pm
Answers: 130

Post by Ev0luti0N » Sat Jun 04, 2011 6:28 pm

alex3 wrote:[php]$num = 1;

if(strlen($num) < 2)
{
$num = 0 . $num;
}[/php]
Цял if за две цифри няма смисъл. Ако има такава фукция ще е добре, ако не здраве да е. :)

User avatar
djman
Гуру
Гуру
Posts: 2812
Joined: Sat Sep 12, 2009 8:07 am
Answers: 108

Post by djman » Sat Jun 04, 2011 6:34 pm

Ev0luti0N wrote:Цял if за две цифри няма смисъл. Ако има такава фукция ще е добре, ако не здраве да е. :)
Ами ако бяха 3 цифри и повече, тогава щеше ли да ползваш if :D
Предложения начин е хубав, не знам защо си така .. против if, все едно е нещо страшно :roll:

alex3
Турист
Турист
Posts: 486
Joined: Mon Jul 12, 2010 2:58 pm
Answers: 46

Post by alex3 » Sat Jun 04, 2011 6:50 pm

Цял if за две цифри няма смисъл. Ако има такава фукция ще е добре, ако не здраве да е. Smile
Е то и if ако нема, каква функция очакваш да е.Ето пример с по-къс if.

[php]$num = 3;
$num = (strlen($num) < 2) ? 0 . $num : $num;[/php]

User avatar
Ev0luti0N
Много Редовен
Много Редовен
Posts: 1971
Joined: Sat Jul 10, 2010 9:40 pm
Answers: 130

Post by Ev0luti0N » Sat Jun 04, 2011 6:55 pm

alex3 wrote:
Цял if за две цифри няма смисъл. Ако има такава фукция ще е добре, ако не здраве да е. Smile
Е то и if ако нема, каква функция очакваш да е.Ето пример с по-къс if.

[php]$num = 3;
$num = (strlen($num) < 2) ? 0 . $num : $num;[/php]
Ето какво очаквам да е sprintf("%02.2d:%02.2d", floor($seconds / 60 ), $seconds % 60);

User avatar
peter_ew
Турист
Турист
Posts: 491
Joined: Tue Nov 20, 2007 5:14 pm
Answers: 39
Location: Плевен

Post by peter_ew » Sat Jun 04, 2011 7:22 pm

[php]
$num=2;
printf("%2d",num);
[/php]
:roll:

User avatar
adrian
Шаман
Шаман
Posts: 3227
Joined: Sat May 27, 2006 7:28 pm
Answers: 370
Location: София

Post by adrian » Sat Jun 04, 2011 7:25 pm

[php]function leadingZeros($num,$numDigits) {
return sprintf("%0".$numDigits."d",$num);
}

echo leadingZeros(1,2); // 01
echo leadingZeros(12,2); // 12
echo leadingZeros(13,1); // 13
echo leadingZeros(123,4); // 0123[/php]

User avatar
lortnoc
Турист
Турист
Posts: 545
Joined: Mon Jul 09, 2007 4:57 am
Answers: 125
Location: Пловдив

Post by lortnoc » Sat Jun 04, 2011 7:50 pm

Ev0luti0N wrote:Знаете ли дали има фукция която вместо 5 да връща 05 вместо 9 да връща 09 и т.н. Обаче когато е 20 да си връща 20. Благодаря! :)
да, можеш да ползваш str_pad с тип left

$chislo = 2;

echo str_pad($chislo, 2, '0', STR_PAD_LEFT);

User avatar
Ev0luti0N
Много Редовен
Много Редовен
Posts: 1971
Joined: Sat Jul 10, 2010 9:40 pm
Answers: 130

Post by Ev0luti0N » Sat Jun 04, 2011 7:55 pm

А направо в темата да попитам, това
[php]sprintf("%02.2d:%02.2d", floor($seconds / 60 ), $seconds % 60);[/php]
изкрава в момента само минути и секунди, ще моге ли да изкарва и часове?

Post Reply