# aus timestamp das datum für morgen.... in einer woche ermitteln



## thespecialx (28. Oktober 2004)

hallo es geht um folgendes:

ich schreibe ein speisepaln-script für ein hotel mit php&mysql.

ich will jetzt eine Wochenansicht angezeigt bekommen von dem heutigen Tag an : also Donnerstag , bis nächste Woche Mittwoch, oder wenn möglich jeweils von Montag bis Sonntag.
Die Eintragung für "heute" klappt, aber wie ermittle ich das morgige Datum? oder das Datum in fünf Tagen?

Bsp:

```
echo"<td width=100><div align=center class=style3><strong><a href=speiseplan.php?uin=$uin&action=karten&tag=$day3&bewid=$bewid&dat=$day4&monat=$month1>$day3</a></strong></div></td>";
```

$bewid=KundenID
$tag=Tagesbezeichnung
$dat=Datum
$monat=Monat

wenn ich diesen Link anklicke bekomme ich halt die Maske um den Speiseplan für heute einzutragen.
Ich will jetzt die Eintragung eine Woche vorraus machen.

DANKE


----------



## Lapsus (28. Oktober 2004)

Mal abgesehen, dass man dein Codebeispiel nicht lesen kann.....


----------



## redlama (28. Oktober 2004)

Schau mal hier, da steht was zur Funktion strtotime().
Die bringt Dich vielleicht weiter.

redlama


----------



## KoMtuR (28. Oktober 2004)

Also um diese Daten ganz bequem zu handeln würd ich aus dem heutigen Timestamp nur das Datum nehmen. Die Uhrzeit interessiert ja nicht.

```
$now = time();
$tag = date("d", $now);
$monat = date("m", $now);
$jahr = date("y", $now);
```
Um nun den nächsten Tag rauszubekommen gibt es mehrere Möglichkeiten. Entweder du inkremierst nun die $variable $tag um 1 oder du rechnest die Sekunden aus, die bei 24h vergehen , also 86400. Diese addierst du einfach auf die Variable $now;

```
define("SEC_PER_DAY", 86400);
$next_day = $now + (SEC_PER_DAY *1);
```
oder

```
$tag++;
$next_day = mktime(0, 0, 0, $monat, $tag, $jahr);
```

Hoffe es hat deine Frage beantwortet.

edit: Hast natürlich Recht. Komischerweise hab ich das überlesen


----------



## Lapsus (28. Oktober 2004)

Na das ist IMHO egal. Denn wenn du z.B. auf den 28.11 5 Tage drauf addierst landest du beim 33.11.

Nach PHP ist das aber identisch zum 03.12.
Ist glaub ich auch in der Doku zu mktime so beschrieben., also kein Problem, um das man sich Sorgen müsste.


----------



## Gumbo (28. Oktober 2004)

Wieso benutzt du nicht einfach – wie schon von redlama erwähnt – die strtotime()-Funktion?


----------



## dadley (14. Januar 2011)

*Meine Funktion*

Hallo Zusammen,

also ich hatte diese Funktion mal geschrieben um in der Woche x (relativ zur aktuellen, aktuelle = 0) das Datum des Tages y auszugeben. Der Wochentag dessen Datum man haben will, wierd als Zahl (1-7) in die Funktion als $day eingetragen und die Woche als $week.

Ich hoffe ich konnte dir helfen!

Dustin


```
function getWeekDate($day, $week)
{
	if ($week == 0)
	{
		if($day == date('N', time()))
		{
			return date("d.m.y");
		}
		else if ($day < date('N', time()))
		{
			return date("d.m.y", strtotime("last ".dayNumToWord($day, "EN")));		
		}
		else if ($day > date('N', time()))
		{
		   return date("d.m.y", strtotime("next ".dayNumToWord($day, "EN")));		
		}
	
	}
	else if ($week > 0)
	{
	 		
		
		if($day == date('N', time()))
		{
			return date("d.m.y", strtotime("+ ".$week." Week")  );
		}
		else if ($day < date('N', time()))
		{
			return date("d.m.y", strtotime("last ".dayNumToWord($day, "EN"), strtotime("+ ".$week." Week")));
		}
		else if ($day > date('N', time()))
		{
		   return date("d.m.y", strtotime("next ".dayNumToWord($day, "EN"), strtotime("+ ".$week." Week")));	
		}	
	}
}

function dayNumToWord($day, $lang){
	if ($lang == "DE"){
	
		if($day == 1){
		return "Montag";
		}
		if($day == 2){
		return "Dienstag";
		}
		if($day == 3){
		return "Mittwoch";
		}
		if($day == 4){
		return "Donnerstag";
		}
		if($day == 5){
		return "Freitag";
		}
		if($day == 5){
		return "Samstag";
		}
		
	}
	else if ($lang = "EN"){
		
		if($day == 1){
		return "Monday";
		}
		if($day == 2){
		return "Tuesday";
		}
		if($day == 3){
		return "Wednesday";
		}
		if($day == 4){
		return "Thursday";
		}
		if($day == 5){
		return "Friday";
		}
		if($day == 6){
		return "Saturday";
		}
		
		
		
	}
```


----------



## just-click (14. Januar 2011)

Danke, das hilft ihm bestimmt. Man munkelt er sei nach 6 Jahren auch schon langsam am verzweifeln und versucht eine Lösung zu finden.


----------



## Yaslaw (14. Januar 2011)

Alte Sachen soll man ruhen lassen. Drum *closed*


----------

