login  Naam:   Wachtwoord: 
Registreer je!
 Forum

stoeien met een datum

Offline Thijs - 14/07/2005 15:46
Avatar van ThijsCrew hosting Hallo allemaal,

Ik heb een vraagje voor sommige misschien zo te beantwoorden uit het blote hoofd, voor mij dus niet helaas.

Ik heb in een tabel in de MySQL database een veld met de naam einddatum hierin staat een datum opslagen in het volgende formaat: 14-07-2005.

Nu wil ik van de einddatum in dit geval dus 14-07-2005 de maand echo"en om verder te gebruiken in mijn systeem.

Ik heb al reeds alles afgezocht op de MySQl site en daar staat wel hoe je wat erbij kunt tellen maar ik kan niet vinden hoe ik nou de maand 07 kan gebruiken.

Weet iemand hoe dit (gemakkelijk) kan?

Bedankt alvast! 

16 antwoorden

Gesponsorde links
Offline Ontani - 14/07/2005 15:47
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
kan je niet met regex die maand deruit halen ofzo?
of exploden op - en de 1e index gebruiken
Offline Thijs - 14/07/2005 15:54
Avatar van Thijs Crew hosting Bedankt voor je zeer snelle reactie Ontani!

Met explode heb ik het al geprobeerd, maar helaas tevergeefs.
En met regex heb ik geen idee hoe ik dat ga aanpakken...
Offline Ontani - 14/07/2005 15:56
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
post je code eens, mss dat er gewoon iets simpels mis is.
Offline Thijs - 14/07/2005 15:58 (laatste wijziging 14/07/2005 15:59)
Avatar van Thijs Crew hosting Ik gebruikte de functie die vermeld stond op php.net

The associative array parsing example by hhabermann at pc-kiel dot de seems flawed to me.

Given

  1. <?php
  2. $data = 'One:1:two:2:three:3';
  3. ?>

it should be parsed with

  1. <?php
  2. function &parse(&$data)
  3. {
  4. $data = explode("\n", $data);
  5. $num = count($data);
  6.  
  7. if ($num % 2 || ! $num) {
  8. return false;
  9. }
  10.  
  11. for ($i = 0; $i < $num / 2; $i++) {
  12. $ret[$data[$i * 2]] = $data[$i * 2 + 1];
  13. }
  14.  
  15. return $ret;
  16. }
  17.  
  18. $data =& parse($data);
  19.  
  20. print_r($data);
  21. ?>

The output is as expected:

Array ( [One] => 1 [two] => 2 [three] => 3 )
Offline CelestialCelebi - 14/07/2005 16:10 (laatste wijziging 14/07/2005 16:11)
Avatar van CelestialCelebi PHP gevorderde SELECT MONTH(datumkolom) AS demaand FROM tabelnaam

? :x
Offline Martijn1989 - 14/07/2005 16:15
Avatar van Martijn1989 PHP ver gevorderde doe dan dit : 3 velden, met dag maand en jaar en dan pak je de maand en doe je dit :

  1. if ($maand == "01") {
  2. echo "Januarie";
  3. } if ($maand == "02") {
  4. echo "Februarie";
  5. } etc etc?
Offline Thijs - 14/07/2005 16:19
Avatar van Thijs Crew hosting @ CelastialCelebi:

Thx for the tip ben nu bezig met de date selectie van MySQL

@ Martijn1515:
Niet om je af te kraken, maar dat is nogal logisch dat het zo kan en dat is natuurlijk een erg gemakkelijke manier, echter is het systeem waaraan ik nu werk niet zo gemakkelijk en wordt er alleen gebruik gemaakt van 1 veld want dit is gemakkelijker en sneller voor andere functies die daarin gebruikt worden.

Ik ga even verder stoeien 
Offline CelestialCelebi - 14/07/2005 16:29
Avatar van CelestialCelebi PHP gevorderde SELECT ELT(MONTH(datumkolom), 'januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december') AS nederlandsemaand FROM tabel

Zo krijg je de Nederlandse maand..

http://www.mysql.com/ELT
Offline Thijs - 14/07/2005 16:39 (laatste wijziging 14/07/2005 16:39)
Avatar van Thijs Crew hosting Ik heb het nu opgelost zonder moeilijke functies te gebruiken.

De code is als volgt voor degene die dat willen weten:

  1. <?
  2. include("config.php");
  3.  
  4. select = "SELECT * FROM abonnement WHERE id = '6'";
  5. $query = mysql_query($select);
  6. while ($list = mysql_fetch_object($query))
  7. {
  8. $maand = substr($list->einddatum, 3, 2);
  9. echo "$maand";
  10. }
  11. ?>


De uitkomst is dus: 07 

Iedereen bedankt voor het meedenken! 
Offline CelestialCelebi - 14/07/2005 16:41
Avatar van CelestialCelebi PHP gevorderde omg.. Waarom doe je dit nou? Dit hoor je niet in PHP te doen en al ZEKER NIET met substr().

Dacht dat er zo'n functie voor was, strtotime() of strftime(), maar doe dit aub in MySQL.... Waarom denk je dat die functies in MySQL bestaan?
Offline Thijs - 14/07/2005 16:42
Avatar van Thijs Crew hosting Om je vraag snel te beantwoorden: "omdat dit wel werkt en dat andere allemaal niet". 
Offline CelestialCelebi - 14/07/2005 16:46
Avatar van CelestialCelebi PHP gevorderde Jezus....

Wat is het doel van je code?

09-07-2004 veranderen in 9 juli 2004?
Offline Ontani - 14/07/2005 16:54 (laatste wijziging 14/07/2005 16:54)
Avatar van Ontani Gouden medailleGouden medailleGouden medailleGouden medaille

-1
extor dan zou dit toch ook moeten werken:

  1. <?
  2. include("config.php");
  3.  
  4. select = "SELECT * FROM abonnement WHERE id = '6'";
  5. $query = mysql_query($select);
  6. while ($list = mysql_fetch_object($query))
  7. {
  8. $parts = explode("-",$list->einddatum);
  9. echo $parts[1];
  10. }
  11. ?>
Offline Thijs - 14/07/2005 16:54 (laatste wijziging 14/07/2005 16:55)
Avatar van Thijs Crew hosting @ CelestialCelebi:

Nee natuurlijk niet!

Dat doe ik al op de volgende manier:
  1. $nl_month = array("1" => "januari", "februari", "maart", "april", "mei", "juni", "juli", "augustus", "september", "october", "november", "december");
  2. $date_str = date("d")." ";
  3. $date_str .= $nl_month[intval(date("m"))]." ";
  4. $date_str .= date("Y");


Het doel is om te checken hoeveel maanden er nog vrij zijn tot het einde van het jaar bij een kwartaal of halfjaar. Ik ben dus een facturatie systeem aan het scripten.
Offline Thijs - 14/07/2005 17:01
Avatar van Thijs Crew hosting @ Ontani:

Dat werkt inderdaad ook en ook beter! Erg bedankt! 
Offline DaOxx - 14/07/2005 17:17
Avatar van DaOxx PHP beginner Maar waarom zet je dat formaat in vredesnaam zo in de tabel...
NOW() in je query of time() hier kun je later nog alles mee doen wat je wilt.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.234s