---
title: "Kalendarie, snygga till"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/133284-kalendarie-snygga-till"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "SONICdust"
published: "2005-08-25T12:42:07.000Z"
updated: "2005-08-25T14:55:26.000Z"
replies: 2
views: 234
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/133284-kalendarie-snygga-till"
---

# Kalendarie, snygga till

## #1 — SONICdust, 2005-08-25T12:42Z

Jag har klipp & klistrat lite för att få ihop ett kalendarie. Det hämtar ut alla poster från nu och listar dom under sin månad. 

Så här ser min php-kod ut:

```php
$months = array("Januari","Februari","Mars","April","Maj","Juni","Juli","Augusti","September","Oktober","November","December");
$curmonth = 0;
$sql = "SELECT * FROM kalendarium WHERE datum >= NOW() ORDER BY datum DESC, kid DESC";
$resultat = @mysql_query($sql) or die ("Kunde ej utföra frågan.");

while ($row = mysql_fetch_array($resultat)) {
	extract($row);
	$nowdate = substr($datum, 5, 2);
	if ($nowdate != $curmonth) {
		echo "<dd><h3>" . $months[$nowdate-1] . "</h3></dd>";
		$curmonth = $nowdate;
	}
	$day = substr($datum, 8, 2);
	$space = "&nbsp;&nbsp;";
	$string = "$day";
	$string = ereg_replace('^0', $space, $string);
	echo "<dt> $string <a href=\"?id={$row["kid"]}\">". (htmlspecialchars($row["rubrik"])) ."</a></dt>";
}
```

 

Som ger resultat
Oktober
 2 LOREM IPSUM
 1 LOREM IPSUM
September
20 LOREM IPSUM
18 LOREM IPSUM
10 LOREM IPSUM
 1 LOREM IPSUM

Men jag skulle vilja få det att se ut så här
Oktober
 2 LOREM IPSUM
 1 LOREM IPSUM

September
20 LOREM IPSUM
18 LOREM IPSUM
10 LOREM IPSUM
 1 LOREM IPSUM

Det jag skulle vilja få hjälp med är att få till det så det ser snyggare ut, gärna så här

```
<dl>
	<dd>Oktober</dd>
 	<dt>12 LOREM IPSUM</dt>
 	<dt> 2 LOREM IPSUM</dt>
</dl>
<dl>
	<dd>September</dd>
	<dt>21 LOREM IPSUM</dt>
	<dt>20 LOREM IPSUM</dt>
</dl>
```

 
Så att jag kan göra dom formateringar jag vill med CSSen

Några tips?

Permalänk: https://www.webforum.nu/p/133284

## #2 — Matte, 2005-08-25T13:24Z

Testa något på det här hållet:

```php
$months = array(1=>"Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December");
$calender = array();

$sql = "SELECT * FROM kalendarium WHERE datum >= NOW() ORDER BY datum DESC, kid DESC";
$resultat = @mysql_query($sql) or die ("Kunde ej utföra frågan.");

while ($row = mysql_fetch_assoc($resultat)) {

    $time = strtotime($row['datum']);
    $row['day'] = preg_replace("/^0/", "&nbsp;&nbsp;", date("m", $time));
    $calendar[$months[date("n", $time)]][] = $row;

}

foreach ($calendar as $month => $event) {

    echo "<dl>\n\t<dd><h3>$month</h3></dd>\n";

    foreach ($event as $row) {
        echo "\t<dt> {$row['day']} <a href=\"?id={$row["kid"]}\">". (htmlspecialchars($row["rubrik"])) ."</a></dt>\n";
    }

    echo "</dl>\n";

}
```

Permalänk: https://www.webforum.nu/p/1662712

## #3 — SONICdust, 2005-08-25T14:55Z

> **Matte skrev:**
>
> Testa något på det här hållet:
>
>
> ```php
> $months = array(1=>"Januari", "Februari", "Mars", "April", "Maj", "Juni", "Juli", "Augusti", "September", "Oktober", "November", "December");
> $calender = array();
> 
> $sql = "SELECT * FROM kalendarium WHERE datum >= NOW() ORDER BY datum DESC, kid DESC";
> $resultat = @mysql_query($sql) or die ("Kunde ej utföra frågan.");
> 
> while ($row = mysql_fetch_assoc($resultat)) {
> 
>     $time = strtotime($row['datum']);
>     $row['day'] = preg_replace("/^0/", "&nbsp;&nbsp;", date("m", $time));
>     $calendar[$months[date("n", $time)]][] = $row;
> 
> }
> 
> 
> foreach ($calendar as $month => $event) {
> 
>     echo "<dl>\n\t<dd><h3>$month</h3></dd>\n";
> 
>     foreach ($event as $row) {
>         echo "\t<dt> {$row['day']} <a href=\"?id={$row["kid"]}\">". (htmlspecialchars($row["rubrik"])) ."</a></dt>\n";
>     }
> 
>     echo "</dl>\n";
> 
> }
> ```

Grymt bra, TACK

```php
$row['day'] = preg_replace("/^0/", "&nbsp;&nbsp;", date("d", $time));
```

 
Ändrar ...date("m"... till "d" så datumen kommer ut. Tack igen

Permalänk: https://www.webforum.nu/p/1662756

---

Tråden på webben: https://www.webforum.nu/amne/php/133284-kalendarie-snygga-till
