---
title: "Konvertera datumformat"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/71646-konvertera-datumformat"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "aztek"
published: "2003-03-20T13:29:56.000Z"
updated: "2003-04-07T18:12:57.000Z"
replies: 13
views: 403
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/71646-konvertera-datumformat"
---

# Konvertera datumformat

## #1 — aztek, 2003-03-20T13:29Z

Har sökt runt bl.a här på Webforum samt läst på php.net men jag får det inte att fungera.

Jag har i min db ett fält som innehåller ett datum i format (2003-03-20 19:50:00). nu är det så att jag önskar skriva ut detta datum enligt följande: March 20, 2003 - 19:50. Hur göra?

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

## #2 — dectgap, 2003-03-20T14:29Z

Använd mysql-funktionen UNIX_TIMESTAMP() när du hämtar datan ifrån databasen, t ex:

```
SELECT UNIX_TIMESTAMP(kolumnnamnet) AS tid FROM databasen
```

Sedan använder du php-funktionen date() såhär:

```php
date("F j, Y - H:i", $timestamp);
```

där $timestamp är resultatet ifrån sql-satsen.

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

## #3 — aztek, 2003-03-20T14:50Z

Hur menar du med "AS tid"? Vad är tid?

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

## #4 — aztek, 2003-03-20T14:54Z

Skrev det såhär

```php
$timestamp = mysql_query('SELECT UNIX_TIMESTAMP(datum) AS tid FROM showlist') or die (mysql_error());
```

men får fram datumet January 1, 1970 - 01:00

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

## #5 — dectgap, 2003-03-20T15:55Z

Så här t ex:

```php
$result = mysql_query('SELECT UNIX_TIMESTAMP(datum) AS tid FROM showlist') or die (mysql_error());

while($row = mysql_fetch_array($result)){
 echo date("F j, Y - H:i", $row['tid']);
}
```

Glöm inte att ansluta till mysql, och välj databas.

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

## #6 — aztek, 2003-03-20T17:04Z

Nu känner jag mig riktigt förvirrad dessvärre. Börjar kännas som jag blandar ihop allt. Följande händer just nu:
...får inte rätt datum, fortfarande January 1, 1970 - 01:00
...min sql fråga plockar inte fram rätt datum, alltså det datum som är det närmsta att komma.

```php
$idag = date("Y-m-d H:i:s");
	$result = mysql_query('SELECT * FROM showlist WHERE datum > "$idag" ORDER BY datum LIMIT 1') or die (mysql_error());
	$timestamp = mysql_query('SELECT UNIX_TIMESTAMP(datum) AS tid FROM showlist') or die (mysql_error());
		while ($row = mysql_fetch_array($result)) {
			extract($row);
			$dag = date("F j, Y - H:i", $row['tid']);
			print "<tr valign=top><td colspan=2><b>Next Live Show: $dag $row[1]</b></td></tr><tr valign=top>";
```

Det ska enbart visas ett datum, det som är det näst följande, som sedan ska bytas ut med nästa när den dagen/tiden är slut.

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

## #7 — dectgap, 2003-03-20T17:16Z

Jag vet inte riktigt vad du vill göra, men du har iaf blandat ihop de två mysql-resultaten ($timestamp och $result):

```php
$idag = date("Y-m-d H:i:s");
    $result = mysql_query('SELECT * FROM showlist WHERE datum > "$idag" ORDER BY datum LIMIT 1') or die (mysql_error());
    $timestamp = mysql_query('SELECT UNIX_TIMESTAMP(datum) AS tid FROM showlist') or die (mysql_error());
        while ($row = mysql_fetch_array($timestamp)) {
            extract($row);
            $dag = date("F j, Y - H:i", $row['tid']);
            print "<tr valign=top><td colspan=2><b>Next Live Show: $dag $row[1]</b></td></tr><tr valign=top>";
```

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

## #8 — aztek, 2003-03-21T11:25Z

Jag tar det från början, känner att det kan vara det bästa.

**Problem 1:**
Jag har i min databas, showlist,  ett fält som heter datum som är av typ datetime (ex 2003-04-06 19:00:00) där det lagras datumet för när en show kommer köras. Tanken är att man ska kunna lägga in hur många framtida shower som helst men endast den näst kommande ska visas på sidan, allltså den showen som är näst i tur att komma. Jag får inte detta att fungera, tar inte rätt show utan verkar ta den senast inlagda.

**Problem 2:**
När texten ska skrivas ut så ska datumet presenteras i formatet April 6, 2003 - 19:00, alltså inte som det ligger i databasen.

Så här ser koden ut just nu, finns säkert ton med fel.

```php
$connection_show = mysql_connect($host,$user,$password) or die ("Kunde inte koppla upp mot MySQL servern\n". mysql_error());
	mysql_select_db($db) or die(mysql_error());
	$idag = date("Y-m-d H:i:s");
	echo $idag;
	    $result = mysql_query('SELECT * FROM showlist WHERE datum > ". $idag ." ORDER BY datum LIMIT 1') or die (mysql_error());
		while ($row = mysql_fetch_array($result)) {
		    extract($row);
			$dag = date("F j, Y - H:i", mysql_query("SELECT UNIX_TIMESTAMP(datum) AS tid FROM showlist"));
			print "<tr valign=top><td colspan=2><b>Next Live Show: $dag $row[1]</b></td></tr><tr valign=top>";
			
			if ($row[3] != NULL) {
				print "<td width=160><img src=$row[3] class=news_pic></td><td><b></b><br><img src=img/empty.gif width=1 height=3<br>$row[1]<br>$row[2]</td>";
			} else {
				print "<td><b></b><br><img src=img/empty.gif width=1 height=3<br>$row[1]<br>$row[2]</td>";
			}
			print "</tr>";
		}
	mysql_close($connection_show);
```

Tack för all hjälp hittills.

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

## #9 — aztek, 2003-03-21T11:52Z

Jag verkar ha löst det första problemet. Det skillde på enkel och dubbel (' "), ändrade om och nu funkar det.

```php
$result = mysql_query("SELECT * FROM showlist WHERE datum > '.$idag.' ORDER BY datum LIMIT 1")
```

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

## #10 — Matte, 2003-03-21T12:21Z

Testa det här:

```
$sql = "SELECT *, DATE_FORMAT(datum, '%M %e, %Y - %H:%I') as tid 
        FROM showlist WHERE datum > now() ORDER BY datum LIMIT 1";
$result = mysql_query($sql);
```

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

## #11 — aztek, 2003-03-21T14:08Z

Jo det fungerar bra, men fortfarande får jag inte ut datumet rätt (Arpril 6, 2003 - xx:xx).

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

## #12 — Matte, 2003-03-21T18:35Z

Ett litet i råkade visst bli ett stort I  :) 

Så här skulle det vara:

```
$sql = "SELECT *, DATE_FORMAT(datum, '%M %e, %Y - %H:%i') as tid 
        FROM showlist WHERE datum > now() ORDER BY datum LIMIT 1";
$result = mysql_query($sql);

$row = mysql_fetch_assoc($result);
echo $row['tid'];
```

 

Läs mer om DATE_FORMAT i mysql-dokumentationen:
<http://www.mysql.com/doc/en/Date_and_time_functions.html>

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

## #13 — aztek, 2003-03-22T15:04Z

Äntligen fick jag det att fungera som jag ville. Jag fick göra det med två SQL satser samt dela upp det hela och (vilket det visade sig) fick lägga datumutskriften med ett echo för att det skulle visas. Ändrade även F & j till M & d. Klistrar in koden nedan, om det nu är någon som är intresserad.

Tack så jättemycket alla ni som tog er tid att hjälpa mig, kände att jag var på väg att bli tunnhårig  :) 

```php
$sql_2 = "SELECT *, DATE_FORMAT(datum, '%M %d, %Y - %H:%i') AS tid FROM showlist WHERE datum > now() ORDER BY datum LIMIT 1";
	$result2 = mysql_query($sql_2);
	$row2 = mysql_fetch_assoc($result2);
	print "<tr valign=top><td colspan=2 bgcolor=dfdfdf><b>Next Live Show:</b> ";
	echo $row2['tid'];
	print " </td></tr><tr valign=top>";
	mysql_free_result;
	$sql_1 = "SELECT *, DATE_FORMAT(datum, '%M %d, %Y - %H:%i') AS tid FROM showlist WHERE datum > now() ORDER BY datum LIMIT 1";
	$result = mysql_query($sql_1);
		while ($row = mysql_fetch_array($result)) {
			extract($row);
			if ($row[3] != NULL) {
				print "<td width=160><img src=$row[3] class=news_pic></td><td>$row[1]<br>$row[2]</td>";
			} else {
				print "<td>$row[1]<br>$row[2]</td>";
			}
			print "</tr>";
		}
```

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

## #14 — sneeze, 2003-04-07T18:12Z

Det går att göra utan mysql med.

```php
$date = date("F j, Y - g:i a");
```

 
och det ger tillexempel:

April 7, 2003 - 8:09 pm

För att få 0-23 timmar:

```php
$date = date("F j, Y - G:i");
```

 
Vilket ger:

April 7, 2003 - 20:09

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

---

Tråden på webben: https://www.webforum.nu/amne/php/71646-konvertera-datumformat
