• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[GELÖST] Datum zur Kalenderwoche

PhilippKr

New member
Hallo,

so, mein nächstes Problem.
Ich habe ein Select-Feld, bei dem die einzelnen Werte die jeweiligen Kalenderwochen sind.
Zur einfacheren Zuordnung soll das Datum des Montages dabei stehen.

Das klappt auch soweit, nur bei den ersten neun Wochen wird der 01.01.1970 ausgegeben.
Habt ihr einen Tipp für mich?

Viele Grüße, Philipp

PHP:
<?php 
$jahr = '2014'; 
$kw = date('W', time());

for ($i=01; $i<=$kw+1; $i++)
{
echo "<option value=\"";
echo $i;
echo "\">KW " ;
echo $i;
echo " - ";
$timestamp_montag = strtotime("{$jahr}-W{$i}"); 
echo date("d.m.Y", $timestamp_montag);
echo "</option>";
}
?>
 
Zuletzt bearbeitet von einem Moderator:
Lass dir doch zusätzlich mal den Wert von strtotime("{$jahr}-W{$i}") anzeigen. Im Manual stehen einige Hinweise, wenn man die Funktion strtotime() mit zweistelligen Jahreszahlen nutzt. Und du arbeitest sogar gemischt, links vierstellig, rechts zweistellig.
 
Danke für den Tipp.

Habe folgendes zur For-Schleife ergänzt:
PHP:
if ($i <10 ){
	$ikw="0".$i; } else {
		$ikw=$i;
	}
$timestamp_montag = strtotime("{$jahr}-W{$ikw}");

Dadurch ist die Kalenderwoche immer mit einer führenden Null geschrieben.
 
Jetzt kommt endlich mal wieder eine Frage zu PHP - und was ist? Ich seh sie nicht rechtzeitig... :moody::moody::eek:
 
Lass mir doch auch mal was, Julian :)

Aber davon ab: Kannst du bitte mal checken, ob "0".$i der richtige Weg ist. In Perl würde ich für sowas sprintf() verwenden und auf keinen Fall eine Stringkonkatination machen. Und das if ($i<10)... kann man dann auch sparen.
 
Zuletzt bearbeitet:
Lass mir doch auch mal was, Julian :)
Aber nur ausnahmsweise ;)

Also ich täte in PHP einfach
PHP:
str_pad($i, 2 ,"0", STR_PAD_LEFT);
verwenden. Dadurch wird die Zahl (in einen String umgewandelt) soweit mit Nullen aufgefüllt, bis sie zwei Zeichen lang ist. Also fällt auch die if-Abfrage weg...
Doku schrieb:
Wenn der Wert von pad_length negativ, kürzer als oder gleich der Länge der Eingabezeichenkette ist, wird keine Erweiterung durchgeführt.

PHP: str_pad - Manual
Dadurch spart man sich dann auch die if-Abfrage...
 
Zurück
Oben