Ik word gek van datum
Ik heb een DB waarin allerlei waardes staan waaronder ook een datum.
In de database staat voor het veld waarin ik de datum opgeef ook als datum. Dus dat kan sowieso het probleem niet zijn. Als ik nu iets wil toevoegen aan mijn db moet ik het als zo opgeven "2007-04-29". Irritant maar daar kan ik nog goed mee leven. Alleen als ik nu een selectie maak uit de db en ik laat van een gekozen "row" ook de datum weergeven dan komt ie natuurlijk als "2007-04-29" te staan. En dat wil ik dus niet!
Nu heb ik al de arrays gebouwd met dagnamen en maandnamen maar ik weet niet hoe ik met mijn datum moet werken. Alles wat ik heb geprobeerd werkte namlijk niet!
Hoe kan ik nu van mijn datum uit de db bv de dag vd week "trekken". Als dat lukt kan ik zelf wel weer de juiste benaming uit de array "trekken".
Ik zie door de bomen het bos niet meer...
Wie kan mij een handje helpen?
Gewijzigd op 01/01/1970 01:00:00 door Sander Z
Gewijzigd op 01/01/1970 01:00:00 door Stefan van Iwaarden
Vrijwel iedere database heeft een ruime collectie functies om wat met delen van de datum te doen, de boel op te maken voor presentatie, mee te rekenen, etc. etc.
Maar ga s.v.p. niet huilen dat jij niet snapt wat een standaard is, daar heb je niets aan.
Ps. Schrijf gewoon even een functie die het formaat dd-mm-yyyy als input accepteert en yyyy-mm-dd als output oplevert. Dat kun je dan zonder enig probleem in de database stoppen. In PostgreSQL kun je dat gewoon in PL/pgSQL doen, hoef jij je daar in PHP helemaal niet meer mee bezig te houden.
SELECT UNIX_TIMESTAMP(datum) blalalalbal
echo strtime('%a', $row['datum'];
of
echo strtime('%A', $row['datum'];
etc etc
Edit: frank was me alweer voor :P
Gewijzigd op 01/01/1970 01:00:00 door Baarr
Waarom dan niet de date format gebriuken van MySQL. :) Werkt op zich ook prima, maar Dayofweek is gemakkelijk te gebruiken icm een array waarin je de namen van de dagen van de week hebt staan.
Baarr schreef op 03.04.2007 22:20:
Eigenlijk is er maar 1 antwoord:
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html
http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html
Niet helemaal, op die pagina staan meerdere mogelijkheden om hetzelfde te bereiken :P Maar je hebt gelijk,het meeste (zo niet alles) aan mogelijkheden met een date veld zijn hier wel omschreven.
Er moet meer ge RTFM'd worden :P
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
SELECT
CONCAT(
ELT(DAYOFWEEK(datum),
'zondag', 'maandag', 'dindsag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'
),
' ',
DAYOFMONTH(datum),
' ',
ELT(MONTH(datum),
'januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december'
),
' ',
YEAR(datum)
) AS newDate
FROM
tabelnaam
CONCAT(
ELT(DAYOFWEEK(datum),
'zondag', 'maandag', 'dindsag', 'woensdag', 'donderdag', 'vrijdag', 'zaterdag'
),
' ',
DAYOFMONTH(datum),
' ',
ELT(MONTH(datum),
'januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december'
),
' ',
YEAR(datum)
) AS newDate
FROM
tabelnaam
Voorbeeldje in SQL met ELT().
Ik moet overigens wel eerlijk bekennen dat ik hier weer van ben afgestapt en PHP de boel weer laat oplossen... Ik gebruik setlocale() en gebruik de instellingen van de browser als input om de taal e.d. te bepalen. Default is uiteraard ook ingesteld.
Voortschrijdend inzicht zal ik maar zeggen. (werk met multi-language-sites)
Ik maak een bepaalde selectie uit mijn database waarbij bv het veld "bedrag" gelijk is aan "50". Hieruit komen dan meerdere items rollen.
Deze ga ik dan weergeven met de while functie en hierbij laat ik dus ook gelijk andere waardes uit de betreffende row zien.
Ook de datum dus. Alleen zie ik deze als "2007-04-16". En ik wil deze weergeven als bv. "Vrijdag 16 april 2007".
Mijn vraag is hoe kan ik nu bv de dag van de week uit deze datum "trekken"?
Dat zou dus iets moeten zijn met $row['datum'] etc...
Hier kom ik niet uit...
Quote:
Zie mijn reactie van 22:26, een kant-en-klare query die al het werk voor je doet, inclusief de dag van de week.En ik wil deze weergeven als bv. "Vrijdag 16 april 2007".
Met als resultaat inderdaad de datum op de juiste manier zoals ik wil weergegeven!
Weet niet of het op een betere, slimmere of wat voor manier dan ook kan maar het werkt in ieder geval!
Allen dank!!!