explode op meerdere delimiters

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Bas Abdul Rahim

Bas Abdul Rahim

17/10/2008 20:59:00
Quote Anchor link
Ben ik weer :-)

Ik heb een vraag over explode. Kan je op meerdere delimiters een explode uitvoeren?

BV:
===
ik heb een datum: 2008-10-17
om alleen de datum te krijgen doe ik:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?
$strExpl
= $row['datum'];
        list ($Jaartal, $Maand, $Dag) = explode('-', $strExpl);
?>


dit geeft een goed resultaat. Nu wil ik echter een datum tijd splitsen.
Ik heb de volgende datum/tijd: 2008-10-17 21:25:00
Wanneer ik het volgende doe:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<? $strExpl = $row['Eind_datum'];
        list ($Jaartal, $Maand, $Dag, $Uur, $Min) = explode('-', ' ', ':', $strExpl);
?>


krijg ik een melding dat ik teveel parameters gebruik. Ok de melding snap ik. Blijkbaar is explode niet zo gemaakt. Is er een manier dat ik wel op meerdere delimiters kan scheiden?
 
PHP hulp

PHP hulp

22/12/2024 18:30:32
 
Ano Niem

Ano Niem

17/10/2008 21:14:00
Quote Anchor link
Ik zou strptime gebruiken. Denk die geeft een array terug met o.a. jaar, maand dag uur en minuut ;)
 
PHP Newbie

PHP Newbie

18/10/2008 00:55:00
Quote Anchor link
Zet een datum gewoon in een DATE(TIME) veld in de database, heb je al deze php kunsten niet nodig.
 
Bas Abdul Rahim

Bas Abdul Rahim

18/10/2008 08:06:00
Quote Anchor link
Dat is het al. Maar ik heb op een bepaald punt de "losse" onderdelen nodig.
Ik heb namelijk een functie (komt van deze site) waar je specifiek een jaar, dag, uur, min, sec

moet ingeven

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?
     function countdown($jaar, $maand, $dag, $uur, $minuten)
{

  $de_countdown_datum = mktime($uur, $minuten, 0, $maand, $dag, $jaar, -1);

  $vandaag = time();

  $verschil = $de_countdown_datum - $vandaag;
  if ($verschil < 0) $verschil = 0;

  $overblijvende_dagen = floor($verschil/60/60/24);
  $overblijvende_uren = floor(($verschil - $overblijvende_dagen*60*60*24)/60/60);
  $minutes_left = floor(($verschil - $overblijvende_dagen*60*60*24 - $overblijvende_uren*60*60)/60);
    
  $taal = 'lang/inc.'.$_COOKIE["taal_pstdf"].'.php';
  include($taal);


 echo '<font size=-1>  '.$overblijvende_dagen.' '.$countdwn_dgn.' '.$overblijvende_uren.' '.$countdwn_urn.' '.$minutes_left.' '.$countdwn_min.' '.$countdwn_msg.'</font>';
}

?>
 
Robert Deiman

Robert Deiman

18/10/2008 09:26:00
Quote Anchor link
@BAS

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
SELECT
   YEAR(datum) AS jaartal,
   MONTH(datum) AS maand,
   DAY(datum) AS dag,
   HOUR(datum) AS uur,
   MINUTE(datum) AS minuut
FROM
   tabel
....WHERE....enz.
 
Jeroen Jansen

Jeroen Jansen

18/10/2008 09:38:00
Quote Anchor link
Bas, waarom sla je de mktime niet over in de code en gebruik dan rechtstreeks je daumveld uit de database

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?
     function countdown($datum)
{

  $vandaag = time();

  $verschil = $datum - $vandaag;
  if ($verschil < 0) $verschil = 0;

  $overblijvende_dagen = floor($verschil/60/60/24);
  $overblijvende_uren = floor(($verschil - $overblijvende_dagen*60*60*24)/60/60);
  $minutes_left = floor(($verschil - $overblijvende_dagen*60*60*24 - $overblijvende_uren*60*60)/60);
    
  $taal = 'lang/inc.'.$_COOKIE["taal_pstdf"].'.php';
  include($taal);


 echo '<font size=-1>  '.$overblijvende_dagen.' '.$countdwn_dgn.' '.$overblijvende_uren.' '.$countdwn_urn.' '.$minutes_left.' '.$countdwn_min.' '.$countdwn_msg.'</font>';
}

?>
 
Bas Abdul Rahim

Bas Abdul Rahim

19/10/2008 10:48:00
Quote Anchor link
@allen
Ik ga vanavond beide even proberen. Ik laat weten wat het is geworden.

IIG ---> Bedankt!!
 
Bas Abdul Rahim

Bas Abdul Rahim

20/10/2008 10:06:00
Quote Anchor link
@ Robert

Ik heb jou oplossing gebruikt.

Iedereen bedankt
 
Ano Niem

Ano Niem

20/10/2008 10:33:00
Quote Anchor link
Bedenk me net ff een andere oplossing, vervang je delimiter met str_replace, dus maak van een : een - :P
 
Jan Koehoorn

Jan Koehoorn

20/10/2008 12:18:00
Quote Anchor link
Aanvulling: je kunt een string ook exploden op een regex met preg_split. Op die manier zou je meer dan 1 delimiter op kunnen geven.
 
Robert Deiman

Robert Deiman

20/10/2008 12:31:00
Quote Anchor link
Bas schreef op 20.10.2008 10:06:
@ Robert

Ik heb jou oplossing gebruikt.

Iedereen bedankt


Dat is in dit geval wel de handigste oplossing, omdat het uit een database komt. In andere gevallen is de oplossing van Jan Koehoorn handiger, het houdt je code overzichtelijk.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.