Försöker göra en kalender. Tomma fält tills dagen träffar

Trädvy Permalänk
Medlem
Plats
Vetlanda
Registrerad
Nov 2011

Försöker göra en kalender. Tomma fält tills dagen träffar

Håller just nu på med en kalender. Just nu försöker jag bara få det till att funka ska försöka minska ner och snygga ner koden så fort jag får allt att funka som jag vill.

Men iallafall, som rubriken lyder, så försöker jag få den att skriva ut tomma fält, som denna månaden så är 1:a på en torsdag, då vill jag att det ska vara tomma fält måndag, tisdag, onsdag.

Och problem nummer två är att jag inte kommer på hur jag ska få den att sätta in en ny <tr> när man skrivit ut så många siffror så man kommit på söndagen (då ska den alltså på börja på en ny rad)

Hoppas ni förstår annars får jag försöka förklara lite mer ingående.

PHP Kod:

# Check if find is set else set it to todays date. if (isset($_GET['Find']) && strlen($_GET['Find']) == 6 && is_numeric($_GET['Find']) == TRUE) { $find = $_GET['Find']; } else { $find = date('ymd'); } # Get out the year from variable $find $year = substr($find, 0, 2); # Get out the month from variable $find $month = substr($find, 2, 2); # Get days in the choosen month $DaysInMonth = cal_days_in_month(CAL_GREGORIAN, $month, $year); # Show the calendar. echo '<table cellspacing="0" cellpadding="0" width="100%">'; # Show the first letter of the day $firstLetterDay = array("M", "T", "O", "T", "F", "L", "S"); echo '<tr>'; foreach ($firstLetterDay as $letter) { echo '<td style="text-align:center;"><strong>'.$letter.'</strong></td>'; } echo '</tr>'; # Show all the numbers of the month echo '<tr>'; for ($i = 1;$i <= $DaysInMonth;$i++) { echo '<td style="text-align:center;">'.$i.'</td>'; } echo '</tr>'; echo '</table>'; echo getDateFromBlogPost('fullDate'); echo $DaysInMonth;

Trädvy Permalänk
Medlem
Plats
127.0.0.1
Registrerad
Apr 2010

Iterera över veckonummer istället, jag tror du kommer kunna lösa det lättare då.
När du itererar över veckan kan du antingen slänga en <br>, <tr> eller helt enkelt styla med css att varje dag tar 14% bredd. Ett väldigt snabbt sätt vore ju också om du kollar

"Och problem nummer två är att jag inte kommer på hur jag ska få den att sätta in en ny <tr> när man skrivit ut så många siffror så man kommit på söndagen (då ska den alltså på börja på en ny rad)"

if(($i / 7) == 1 || ($i / 7) == 2 || ($i / 7) == 3 || ($i / 7) == 4){ //isåfall är det den sjunde dagen echo "<br>"; }

men jag tycker inte riktigt det är samma grej.

"Men iallafall, som rubriken lyder, så försöker jag få den att skriva ut tomma fält, som denna månaden så är 1:a på en torsdag, då vill jag att det ska vara tomma fält måndag, tisdag, onsdag."

echo date('Y-m-d', strtotime("+1 week")); //resultat blir alltså t.ex. 1976-02-03 -> 1976-02-10

Denna metod föreslår jag, men med lite mer avancerad teknik såklart.

Sen kan du iterera den

for($i = 1; i < 4; i++){ echo date('Y-m-d', strtotime("+$i week")); //resultat borde skriva ut 4 veckor

Osäker med just iterationen, sitter på jobbet nu.

Med det sagt, det finns flera olika alternativ.
Det bästa vore egentligen om du visar oss, länka sidan som använder projektet eller bilder, demon. Så vi kan hjälpa dig. Vad jag förstår så ser det ut som att vara avsett för en blogg eller på en blogg.

En annan metod som finns bygger ju på

$DaysInMonth = cal_days_in_month(CAL_GREGORIAN, $month, $year);

där kan du kolla antal dagar, men att du alltid ser till att ha 42 dagar inlästa. Det ger dig en rektangel på 7x5 (du läser alltså 5 veckor).
Där får du som förslag igen att iterera på veckor, men i 5 eller 6-veckorsperiod, då är vi tillbaka till mitt andra förslag.

Citera om du vill ha svar, hjälpte jag dig, gilla svaret!