Datum omzetten naar dag en maand
Ik loop tegen een probleem aan waar jullie waarschijnlijk wel een oplossing voor weten.
In de database sla ik in een veld met type date een datum op ( om zo een koopzondag weer te geven) Nu wil ik alleen dat op de website het niet wordt weergegeven zoals opgeslagen in de database "2011-08-28" Maar dat het "28 aug" wordt..
Hoe kan ik dit het beste doen?
Heel erg bedankt alvast!
manual was je daar zelf denk ik ook wel uitgekomen maar hier een mogelijke oplossing:
Plus je moet je locale goed hebben staan voor een Nederlands formaat.
Met een beetje zoeken in de Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$sql = 'SELECT UNIX_TIMESTAMP(de_datum) as de_datum FROM ..';
//de rest van je mysql fetch meuk
$row = mysql_fetch_assoc($result);
echo strftime("%d %b",$row['de_datum']);
?>
$sql = 'SELECT UNIX_TIMESTAMP(de_datum) as de_datum FROM ..';
//de rest van je mysql fetch meuk
$row = mysql_fetch_assoc($result);
echo strftime("%d %b",$row['de_datum']);
?>
Plus je moet je locale goed hebben staan voor een Nederlands formaat.
Enig idee wat ik fout doe? Heb de manual gelezen, maar kom er niet echt wijs uit.. ( niet zoveel php ervaring)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
<?php
$huidigemaand = date("m");
$query ="SELECT vestigingen.vestiging_id, vestigingen.plaats, datum, DATE_FORMAT(datum,'%m') AS maand, UNIX_TIMESTAMP(datum) as de_datum
FROM koopzondagen INNER JOIN vestigingen ON koopzondagen.vestiging_id=vestigingen.vestiging_id WHERE DATE_FORMAT(datum,'%m') = $Nextmaand ORDER BY datum";
$result = mysql_query($query) or die ("FOUT: " .mysql_error());
while (list($id, $koopzondag, $datum, $maand) = mysql_fetch_row($result) ) {
setlocale(LC_TIME, 'NL_nl');
echo strftime("%d %b",$result['datum']);
echo (" | <a href='svea-vestigingen.php?vestiging_id=".$id."'>Svea Keukens $koopzondag</a><br />");
}?>
$huidigemaand = date("m");
$query ="SELECT vestigingen.vestiging_id, vestigingen.plaats, datum, DATE_FORMAT(datum,'%m') AS maand, UNIX_TIMESTAMP(datum) as de_datum
FROM koopzondagen INNER JOIN vestigingen ON koopzondagen.vestiging_id=vestigingen.vestiging_id WHERE DATE_FORMAT(datum,'%m') = $Nextmaand ORDER BY datum";
$result = mysql_query($query) or die ("FOUT: " .mysql_error());
while (list($id, $koopzondag, $datum, $maand) = mysql_fetch_row($result) ) {
setlocale(LC_TIME, 'NL_nl');
echo strftime("%d %b",$result['datum']);
echo (" | <a href='svea-vestigingen.php?vestiging_id=".$id."'>Svea Keukens $koopzondag</a><br />");
}?>
Gewijzigd op 19/08/2011 11:30:03 door Ed van Papenrecht
echo strftime("%d %b",$result['de_datum']);
Heb het nu werken, maar wel op een andere manier als hierboven namelijk:
DATE_FORMAT(datum,'%d %b')gebruiken ipv 'SELECT UNIX_TIMESTAMP(de_datum)
Super bedankt iig voor jullie hulp! Ben dankzij jullie al een heel eind met mijn prgrammeer werk, en mijn php kennis wordt steeds beter:)
Zo kan het ook :) Alleen weet niet of je dan het op basis van Nederlandse locale kan fixen met MySQL.
Toevoeging op 19/08/2011 12:21:41:
Toch nog een vraagje:$
Nu is het zo dat hij alles onder elkaar zet bijvoorbeeld:
11 Aug | Den Helder
11 Aug | Heerenveen
11 Aug | Aartselaar
28 Aug | Aartselaar
28 Aug | Aartselaar
Is het programeer technisch mogelijk dat ik tussen de 11aug en 28 aug een open regel zet. Zodat het wat overzichtelijker wordt?
Dan moet je de datum in een variabele opslaan. En in de loop vergelijken of de opgeslagen datum anders is dan de huidige datum, en in dat geval een extra enter echoen.
Bedankt iig:D
Toevoeging op 19/08/2011 13:33:01:
Mmm kom er toch niet echt uit... Kan iemand mij hierbij helpen..
heb nu dit als output:
Code (php)
1
2
3
4
2
3
4
<?
while (list($id, $koopzondag, $datum, $maand, $datum2) = mysql_fetch_row($result) ) {
echo ("$datum2 | <a href='svea-vestigingen.php?vestiging_id=".$id."'>Svea Keukens $koopzondag</a><br />");
}?>
while (list($id, $koopzondag, $datum, $maand, $datum2) = mysql_fetch_row($result) ) {
echo ("$datum2 | <a href='svea-vestigingen.php?vestiging_id=".$id."'>Svea Keukens $koopzondag</a><br />");
}?>
Kees Schepers op 19/08/2011 11:41:48:
Zo kan het ook :) Alleen weet niet of je dan het op basis van Nederlandse locale kan fixen met MySQL.
Zie: http://dev.mysql.com/doc/refman/5.0/en/locale-support.html
http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_date-format
Oh en de enige manier waarop je fatsoenlijk kan fetchen is door gebruik te maken van mysql_fetch_assoc, dat geeft een array terug.
En laat je sql statement nog eens zien, want volgens mij loop je maar wat aan te "kloten".
Gewijzigd op 19/08/2011 20:02:28 door Noppes Homeland
Code (php)
Oh, denk eraan dat je variabelen uit de string haalt.
Gewijzigd op 19/08/2011 21:31:17 door Jacco Brandt
en houd rekening met deze opmerking:
Quote:
Oh en de enige manier waarop je fatsoenlijk kan fetchen is door gebruik te maken van mysql_fetch_assoc, dat geeft een array terug.
Bedankt voor de feedback..
Ik gebruik momenteel onderstaande code. Zal eens kijken of ik wat met jullie toevoegingen kan..
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
$huidigemaand = date("m");
//query om alle vestigignen die op zondag open zijn in de huidige maand in de website te tonen
$query ="SELECT vestigingen.vestiging_id, vestigingen.plaats, datum, DATE_FORMAT(datum,'%m') AS maand, DATE_FORMAT(datum,'%d %b') as de_datum
FROM koopzondagen INNER JOIN vestigingen ON koopzondagen.vestiging_id=vestigingen.vestiging_id WHERE DATE_FORMAT(datum,'%m')= $huidigemaand ORDER BY datum";
$result = mysql_query($query) or die ("FOUT: " .mysql_error());
while (list($id, $koopzondag, $datum, $maand, $datum2) = mysql_fetch_row($result) ) {
echo ("$datum2 | <a href='svea-vestigingen.php?vestiging_id=".$id."'>Svea Keukens $koopzondag</a><br />");}
?>
$huidigemaand = date("m");
//query om alle vestigignen die op zondag open zijn in de huidige maand in de website te tonen
$query ="SELECT vestigingen.vestiging_id, vestigingen.plaats, datum, DATE_FORMAT(datum,'%m') AS maand, DATE_FORMAT(datum,'%d %b') as de_datum
FROM koopzondagen INNER JOIN vestigingen ON koopzondagen.vestiging_id=vestigingen.vestiging_id WHERE DATE_FORMAT(datum,'%m')= $huidigemaand ORDER BY datum";
$result = mysql_query($query) or die ("FOUT: " .mysql_error());
while (list($id, $koopzondag, $datum, $maand, $datum2) = mysql_fetch_row($result) ) {
echo ("$datum2 | <a href='svea-vestigingen.php?vestiging_id=".$id."'>Svea Keukens $koopzondag</a><br />");}
?>
Toevoeging op 23/08/2011 10:22:50:
@Jacco,
Helemaal super. Dit is precies wat ik bedoel!
Bedankt allemaal!