Datum bzw timestamp aus jahr, woche und wochentag

Hallo zusammen

Ich stehe vor folgendem Problem:
gegeben sind folgende Zahlen: jahr, woche, wochentag
gesucht ist: das entsprechende Datum (oder der timestamp, lässt sich ja dann umrechnen)

versucht hab ichs schon mit

Gibt mir aber die Fehler:

[5] => The format separator does not match [6] => The format separator does not match [7] => The format separator does not match [8] => Trailing data

Hi,

wie wärs mit mktime?
php.net/manual/de/function.mktime.php

lg flo

//edit: Ups … hab deine Frage nur überflogen da hilft mktime natürlich nix …

Ja du sagst es ^^

Nee, man könnte natürlich den Tag des Jahres irgendwie ausrechnen … :unamused: :qst:

anzahl Tage der ersten Woche des Jahres + (Woche - 2) * 7 + aktueller Tag der Woche

denke, das sollte funktionieren, nicht? Aber wie krieg ich die anzahl Tage der ersten Woche des Jahres?

Aber vielleicht gäbe es auch eine einfachere Möglichkeit?

Na jedenfalls ist mir gerade ein Lichtlein aufgeganen, da umgehe ich einfach das ganze, ich denke das sollte nun auch ohne diese umrechnung funktionieren… andernfalls meld ich mich wieder :slight_smile:

Aber trotzdem, näme es mich wunder, wie das problem zu lösen wäre :sun:

warte mal du hast mich auch auf ne idee gebracht^^…

<span class="syntaxhtml"><br /><span class="syntaxdefault"><?php<br />$jahr </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">""</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">$woche </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">""</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">$wochentag </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">""</span><span class="syntaxkeyword">;<br /><br /></span><span class="syntaxcomment">/* Variablen zur besseren übersicht */<br /></span><span class="syntaxdefault">$stunde </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"0"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">$minute </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"01"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">$secunde </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"0"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">$monat </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"1"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">$tag </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> </span><span class="syntaxstring">"1"</span><span class="syntaxkeyword">;<br /><br />while(</span><span class="syntaxdefault">date</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"W"</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> mktime</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$stunde</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $minute</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $secunde</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $monat</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $tag</span><span class="syntaxkeyword">,</span><span class="syntaxdefault"> $jahr</span><span class="syntaxkeyword">))</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">==</span><span class="syntaxdefault"> </span><span class="syntaxstring">'1'</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">{</span><span class="syntaxdefault"> </span><span class="syntaxcomment">//Wenn noch in erster Woche<br /></span><span class="syntaxdefault">  $tag</span><span class="syntaxkeyword">++;</span><span class="syntaxdefault"> </span><span class="syntaxcomment">//Dann ein Tag mehr<br /></span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">$tag </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $tag </span><span class="syntaxkeyword">-</span><span class="syntaxdefault">1</span><span class="syntaxkeyword">;</span><span class="syntaxdefault"> </span><span class="syntaxcomment">// Nun hast du die ersten Tage des jahres die noch in der ersten woche liegen<br /><br />//Dann dein Ansatz<br />// anzahl Tage der ersten Woche des Jahres + (Woche - 2) * 7 + aktueller Tag der Woche<br /></span><span class="syntaxdefault">$ergebnis </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $tag </span><span class="syntaxkeyword">+</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$woche </span><span class="syntaxkeyword">-</span><span class="syntaxdefault">2</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">*</span><span class="syntaxdefault"> 7 </span><span class="syntaxkeyword">+</span><span class="syntaxdefault"> $wochentag</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">?><br /></span></span>

//edit: Ganz schön is der Code sicher nicht aber einfach mal ein ansatz :wink: … Weiß aber nicht so genau auf was du mit dem Ergebnis

dann anstellen willst

Da kann man dann wiederum mit mktime den timestamp herausholen und das datum draus machen…

Aber ich hab das jetzt eben auf den anderen weg gelöst (mir fällt der bessere weg meistens erst nach dem hilfe-posten ein xD)

Rückmelden zum code kann ich nur: sekunde schreibt man (auch wenns kleingeschrieben ist) mit k ;D

Ansich, löst du das Problem mit diesem Code aber gut.
Schade, dass ichs nun anders gelöst hab ^^’

Grüsse und danke :wink:

Achso ok ^^… hehe

Kenn ich nur zu gut xD :sunglasses:

Upss^^… naja war mir nicht so sicher … weil ich glaub in englisch schreibt mans ja mit c … aber vom prinzip her wärs egal ich hab den „fehler“ ja konsequent durchgezogen und php is ja egal wie man ne variable nennt (bis auf paar ausnahmen)

[quote=„bcg“]Ansich, löst du das Problem mit diesem Code aber gut.
Schade, dass ichs nun anders gelöst hab ^[1]
Danke … warum is des schade is doch auch gut^^… wennst magst kannst ja mal deinen Code posten :wink:

Ok freut mich das sich dein Problem gelöst hat…

lg flo schönen abend dir noch


  1. /quote ↩︎

DateTime vom Beginn des Jahres erstellen
DateInterval Anzahl Wochen draufpacken
DateInterval Wochentag draufpacken
simple

[quote=“Morpheus”]DateTime vom Beginn des Jahres erstellen
DateInterval Anzahl Wochen draufpacken
DateInterval Wochentag draufpacken
simple[/quote]
Nein, nicht so simpel.

[quote=“bcg”]gegeben sind folgende Zahlen: jahr, woche, wochentag
gesucht ist: das entsprechende Datum[/quote]
Die erste Woche des Jahres 2009 begann am 4.1.2009.
Der dritte Tag der ersten Woche des Jahres 2009 wäre also der 6.1.2009

Deine Methode ergibt für 1.1.2009 nach “Anzahl Wochen draufpacken” den 8.1.2009 (Interval eine Woche = sieben Tage), und nach Anzahl Wochentag[e] draufpacken den 11.1.2009