2010-11-29 4 views
0

Ich habe Probleme, einen Wochenbereich in PHP anzupassen.
Ich habe es funktioniert, um die aktuelle Arbeitswoche ab Montag zu zeigen.
So für diese Woche zeigt es 11/29/2010 - 12/03/2010.Erhalten Sie einen Datumsbereich, der 2 Geschäftswochen ab dem aktuellen Montag abdeckt

Ich muss dies ändern, um von der aktuellen Arbeitswoche Montag und Show-und Enddatum von zwei Freitagen ab dem Montag zu starten.

So zum Beispiel würde es derzeit ein Startdatum von 29.11.2010 und Enddatum von 12/10/2010 zeigen.

Hier ist mein Code

<? 
$timestamp = time(); 
echo date("m/d/Y", strtotime("this monday", $timestamp)); 
echo " - "; 
echo date("m/d/Y", strtotime("Next Friday", $timestamp)); 
?> 

Wie füge ich +7 auf "Next Friday"

thx

Antwort

1

Sie nicht this monday verwenden können Datum Zeit zu konstruieren,
wie es montag passieren ging, bringe sie am nächsten montag

hier mein Vorschlag

<? 
$current_wkday = date('N', time()); 
switch ($current_wkday) 
{ 
    /* assuming on sunday, get next monday */ 
    case 0: $this_monday = strtotime('+1 day'); break; 
    case 1: $this_monday = time(); break; 
    default: $this_monday = strtotime('-'.($current_wkday-1).'day'); break; 
} 

echo date("m/d/Y", $this_monday); /* 11days = 7+(5-1) */ 
echo " - "; 
echo date("m/d/Y", $this_monday+(86400*11)); 
?> 
+0

Drews Kommentar unten funktioniert, aber wie du gesagt hast, weil heute Dienstag ist. Wenn der nächste Montag kommt, hätte es das Enddatum um eine weitere Woche verschoben, anstatt im selben Bereich zu bleiben. Ich glaube, dass Ihre ist die komplette Lösung, und ich schätze es. Ich habe es studiert und verstehe das meiste. Ich sehe nicht, wie der mittlere Abschnitt funktioniert. Wenn Sie das wieder sehen und Zeit haben, würde ich mich über die Erklärung freuen. Vielen Dank! –

+0

@Dirty Bird Design - Der mittlere Teil ist anzunehmen, wenn das aktuelle Datum Montag ist, ** dieser Montag ** ist heute. Wenn das aktuelle Datum Sonntag ist, müssen Sie stattdessen +1 Tag für ** diesen Montag ** verwenden. Ansonsten ist jeder Tagespass Montag derselbe wie current_weekday-1 (wie Dienstag, um diesen Montag zu bekommen, ist -1, Mittwoch ist -2, und so weiter) – ajreal

1

Statt strtotime("Next Friday", $timestamp)strtotime("Next Friday", $timestamp) + 60*60*24*7 (fügen Sie die Anzahl der Sekunden in einer Woche) tun .

+0

ist, wird dies auf dem zweiten montag nicht von vorne beginnen in statt im ursprünglichen 2-Wochen-Bereich zu bleiben? –

+0

@Dirty Bird Design: Ich war nur mit der Frage beschäftigt: Wie füge ich +7 zu "Next Friday" hinzu. Habe eigentlich nichts anderes getestet :-) – cambraca

1

gerade realisiert, dass „vorheriger Montag“ nur der aktuelle Tag arbeitet Dienstag oder später ... aber es ist ein Ausgangspunkt für Sie ..

<?php 
    $monday = date('m/d/Y', strtotime("previous monday")); 
    $friday = date('m/d/Y', strtotime($monday . " + 11 days")); 
    echo $monday . ' - ' . $friday ; 
?> 
+0

Drew - danke Mann, das war ein guter Startpunkt, eigentlich war alles, was ich gemacht habe, "vorhergehender Montag" zu "diesem Montag" zu ändern. Es scheint zu funktionieren, aber ich behalte es im Auge. –

Verwandte Themen