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

Status
Nicht offen für weitere Antworten.

thespecialx

Mitglied
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:
PHP:
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
 
Also um diese Daten ganz bequem zu handeln würd ich aus dem heutigen Timestamp nur das Datum nehmen. Die Uhrzeit interessiert ja nicht.
PHP:
$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;
PHP:
define("SEC_PER_DAY", 86400);
$next_day = $now + (SEC_PER_DAY *1);
oder
PHP:
$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 :)
 
Zuletzt bearbeitet:
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.
 
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

PHP:
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";
		}
		
		
		
	}
 
Danke, das hilft ihm bestimmt. Man munkelt er sei nach 6 Jahren auch schon langsam am verzweifeln und versucht eine Lösung zu finden.
 
Status
Nicht offen für weitere Antworten.
Zurück