Zahlen mit führender 0 formatieren
michael
- php
0 Candid Dauth0 Tom
0 MudGuard
hallo alle zusammen,
ich lasse per for-schleife für ein datums-select feld alle tage von 1-31 ausgeben:
<select name="select">
<?php for ($i = 1; $i <= 31; $i++){?>
<option value="<?=$i?>"><?=$i?></option>
<?php } ?>
</select>
ich will diese daten in ein mysql date-feld übernehmen.
dazu muss aber ja nicht eine 1 im value attribut stehen, sondern eine "01"...
gibt es eine möglichkeit, mit php zahlen unter immer zweistellig zu formatieren? also mit einer führenden 0?
vielen dank für eure hilfe,
grüße,
michael
Hallo du da draußen,
gibt es eine möglichkeit, mit php zahlen unter immer zweistellig zu formatieren? also mit einer führenden 0?
Hmm...
<?=((strlen($i) == 1) "0" : "").$i?>
Also:
Wenn die Länge von $i 1 ist, schreibe eine Null und ansonsten nichts. Und dann schreibe $i.
Ist bestimmt nicht die sauberste Lösung, aber ich habe keine Ahnung von sauberem Programmierstil... ;-)
Du könntest natürlich auch eine eigene Funktion schreiben, wie zum Beispiel:
function nulls($number, $digits=2)
{
while(strlen($number) < $digits)
$number = "0".$number;
return $number;
}
Die rufst du dann einfach so auf:
<?=nulls($i)?>
Grüße von hier drinnen, aus Biberach an der Riss,
Candid Dauth (Dogfish)
Hello,
es gibt die Funktion str_pad() http://de3.php.net/manual/de/function.str-pad.php
Und außerdem könnte man auch mit substr('00'.$zahl,-2) arbeiten
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hi,
ich will diese daten in ein mysql date-feld übernehmen.
dazu muss aber ja nicht eine 1 im value attribut stehen, sondern eine "01"...
Sagt wer?
mysql> show columns from datum;
+-------+------------+------+-----+------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+------------+------+-----+------------+----------------+
| id | bigint(20) | | PRI | NULL | auto_increment |
| tag | date | | | 0000-00-00 | |
+-------+------------+------+-----+------------+----------------+
2 rows in set (0.01 sec)
mysql> insert into datum (id, tag) values (0, "2004-11-3");
Query OK, 1 row affected (0.00 sec)
mysql> select * from datum;
+----+------------+
| id | tag |
+----+------------+
| 1 | 2004-11-03 |
+----+------------+
1 row in set (0.00 sec)
Beachte das Format des Datums beim insert und beim anschließenden select.
gibt es eine möglichkeit, mit php zahlen unter immer zweistellig zu formatieren? also mit einer führenden 0?
echo 011 + 1; // gibt logischerweise 10 aus.
cu,
Andreas