Erstellung von wöchentlichen Kalender in php
Habe ich einen php-Kalender, die zeigen, eine Woche in einer Zeit.Hier ist der code den ich erstellt habe
<?php
$week = date("W");
$year = (isset($_GET['year']))?$_GET['year']:date("Y");
$week = (isset($_GET['week']))?$_GET['week']:Date('W');
if($week>53){
$year+= 1;
$week=1;
}
?>
<a href="<?php echo $_SERVER['PHP_SELF'].'?week='.($week+1).'&year='.$year; ?>">Next Week</a> <!--Next week-->
<a href="<?php echo $_SERVER['PHP_SELF'].'?week='.($week-1).'&year='.$year; ?>">Pre Week</a> <!--Previous week-->
<table border="1px">
<tr>
<td>Employee</td>
<?php
for($day=1; $day<=7; $day++)
{
$d = strtotime($year."W".$week.$day);
echo "<td>".date('l',$d )."<br>";
echo date('d M',$d)."</td>";
}
?>
</tr>
wenn ich versuche zu gehen, um in der nächsten Woche ist es korrekt funktioniert. Aber wenn sich das Jahr ändert, ist es nicht die Arbeit für das nächste Jahr.
- Wie viele Wochen hat ein Jahr? Ich denke, es ist nicht
if($week > 53)
- Ja, ich habe auch versucht, mit 54 aber es funktioniert nicht
- Nun, das ist, weil ein Jahr hat nur 52 Wochen.
- Yaa es ist aber auch nicht funktioniert
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verlassen der Woche Berechnung der DateTime::setIsoDate() Methode.
Hier ist die einfachste und beste Lösung für dein problem :
Wenn Sie mit
strtotime
, Ihre Woche zu zweistellige. Sie haben voranstellen einer null, wenn die Woche weniger als 10 vor derfor
Schleife.Auch, ein Jahr hat nur 52 Wochen, die Bedingung am Anfang sein sollte.
Vollständige code:
Also, a year only has 52 weeks
ist falsch. Wiki copy/paste:In every 400 years there are 71 years with 53 weeks.
. Zum Beispiel, das Jahr 2009 hatte 53 Wochen. Versuchenecho date('o W', strtotime('2009-12-31'));