datum dag en maand als bv 08 of 8

Status
Niet open voor verdere reacties.

Frenske123

Terugkerende gebruiker
Lid geworden
2 jul 2007
Berichten
1.267
Hoi,

Ik heb onderstaande code

Probleem is dat het soms niet werkt omdat ik voor de maand of dag de ene keer een 0 moet plaatsen ,
dat gaat dan weer tijdje goed en dan schijnt de nul weer weggelaten te moeten anders werkt het ook niet.

dus maand 8 dan weer 08 , geld ook voor de dag, vandaag voor augustus een 8 08 werkt hier nu niet

Iemand een idee, of een beter alternatief


PHP:
<?php
  if (date("Y") == 2012 && date("m") == 8 && date("d") == 28)  { 
  echo "september";
}

elseif     enz.....
?>
 
Laatst bewerkt:
Dat komt omdat je de verkeerde letters gebruikt ;)
Probeer deze eens :)
[table="width: 500, class: dotted"][tr][td]Format / Character[/td][td]Description[/td][td]Example return values[/td][/tr]
[tr][td]j[/td][td]Day of the month without leading zeros[/td][td]1 to 31[/td][/tr]
[tr][td]n[/td][td]Numeric representation of a month, without leading zeros[/td][td]1 through 12[/td][/tr][/table]
http://nl3.php.net/manual/en/function.date.php

[edit]
Als het alleen om de juiste maand terug te krijgen gaat kun je deze misschien ook gebruiken ;)

PHP:
echo new IntlDateFormatter( "nl_NL" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
    'Europe/Amsterdam',IntlDateFormatter::GREGORIAN, 'MMMM' );
http://www.php.net/manual/en/class.intldateformatter.php

Getest heb ik het niet dus de kans is aanwezig dat het niet werkt.
[/edit]
 
Laatst bewerkt:
Bedankt voor reactie:)

Dit zou een en ander kunnen verklaren,,alleen ik heb de d en m (met nul ervoor dus) nooit veranderd en toch komt er een moment dat ik de nul weer moet weglaten, of andersom
 
Is bekend wanneer dat gebeurd?
 
Is bekend wanneer dat gebeurd?

Ik heb er nog niks aan kunnen verbinden , de maand augustus was 08 nu weer moeten zetten op de 8 , kans dat het in september weer niet werkt en ik dit op 09 moet zetten.

Eens kijken of ik de maand vervang door de M ben ik hier al van de >>wel of geen nul .

-----
onderstaande werkt niet (M)

PHP:
    if(date("Y") == 2012 && date("M") == aug && date("d") == 29)  {  //
  echo "augustus";
 }
 
Laatst bewerkt:
Ik neem aan dat je dit wilt :)
PHP:
if(date("n") == 8)
{
    echo "augustus";
}
 
Ik neem aan dat je dit wilt :)
PHP:
if(date("n") == 8)
{
    echo "augustus";
}

Klopt dat werkt , maar ondanks de waarde n blijf ik toch het probleem houden>>08 of 8 ,,soms zus soms zo.

Dus ik dacht doe ik bij de maand volgende ,,ben ik hier al van de NUL af !

PHP:
if(date("M") == aug)
{
    echo "augustus";
}

maar werkt niet
 
Klopt dat werkt , maar ondanks de waarde n blijf ik toch het probleem houden>>08 of 8 ,,soms zus soms zo.

Dus ik dacht doe ik bij de maand volgende ,,ben ik hier al van de NUL af !

PHP:
if(date("M") == aug)
{
    echo "augustus";
}

maar werkt niet

PHP:
if(date("M") == 'aug')
{
echo "er wordt een string gevormd dus moet je ook controleren op een string...";
}
 
zou niet moeten kunnen. misschien dat je server tijd anders loopt. doe een else{echo 'andere maand.';}
 
Dan kun je beter even dit doen
PHP:
echo date('M');

Het kan inderdaad zijn dat je server een andere tijd heeft
 
blijft leeg


PHP:
if(date("M") == 'jan')
{
echo "jan";
}

 elseif(date("M") == 'feb')
{
 echo "feb";
}

 elseif(date("M") == 'mar')
{
 echo "maart";
}


 elseif(date("M") == 'apr')
{
 echo "apr";
}

 elseif(date("M") == 'may')
{
 echo "mei";
}

 elseif(date("M") == 'jun')
{
 echo "jun";
}

 elseif(date("M") == 'jul')
{
 echo "jul";
}

 elseif(date("M") == 'aug')
{
 echo "aug";
}

 elseif(date("M") == 'sep')
{
 echo "sep";
}

 elseif(date("M") == 'oct')
{
 echo "okt";
}

 elseif(date("M") == 'nov')
{
 echo "nov";
}

 elseif(date("M") == 'dec')
{
 echo "dec";
}

Dan kun je beter even dit doen
PHP:
echo date('M');

Het kan inderdaad zijn dat je server een andere tijd heeft


Deze werkt ...aug
 
Laatst bewerkt door een moderator:
PHP:
if(strtolower(date("M")) == 'jan')
{
echo "jan";
}
 
 elseif(strtolower(date("M")) == 'feb')
{
 echo "feb";
}......

het zou kunnen dat je server hoofdletters terug geeft.
strtolower maakt er kleine letters van.
 
Probeer het anders met een switch en het resultaat in een variabele
PHP:
$maand = '';
switch(date('n'))
{
  case 1:
    $maand = 'januari';
  break;
  case 2:
    $maand = 'februari';
  break;
  // ... etc
  case 9:
    $maand = 'augustus';
  break;
  default:
    // Als geen van de 'cases' aangeroepen wordt
    $maand = 'Onbekende maand';
  break;
}
echo $maand;
 
Hoi ,


Bedankt !

Met de code van tha Devil hierboven ,,geen output ,vreemd

die van arjan96s wel

Ik zal moeten afwachten hoe het met de dagen gaat (0 t/m 9) 1 of toch weer af en toe 01 , ook al staat er een kleine j (Day of the month without leading zeros).
PHP:
if(strtolower(date("M")) == 'jul' && date (strtolower(date("j")) == 30 ))
{
echo "Juli";
}
 
 elseif(strtolower(date("M")) == 'aug' && date (strtolower(date("j")) == 30 ))
{
 echo "Augustus";
}

 else {
 echo "Onbekend";
 }
 
Laatst bewerkt:
Waarom voeg je eigenlijk steeds de dag toe?

Overigens ben ik er achter waarom mijn code niet werkt. Augustus is de 8e maand, niet de 9e :(
Daarnaast geeft date('n') een string terug, terwijl ik op een integer controleer.

Op deze manier weet ik zeker dat het een integer is:
PHP:
$maand = '';
switch((int)date('n'))
{
  case 1:
    $maand = 'januari';
  break;
  case 2:
    $maand = 'februari';
  break;
  // ... etc
  case 8:
    $maand = 'augustus';
  break;
  default:
    // Als geen van de 'cases' aangeroepen wordt
    $maand = 'Onbekende maand';
  break;
}
echo $maand;
 
Laatst bewerkt:
@Tha Devil "Waarom voeg je eigenlijk steeds de dag toe?"

als maand is augustus de 2e echo test1,,,enz , wil ik dus gebruiken voor maand en datum/dag

hier zat ook het probleem>>>maan 09 of 9 / dagen idem..pure willekeur zonder ook maar bv aan de m of j iets te veranderen !

---------------
nog steeds geen output....
 
PHP:
<?php
$maanden = array('jan','febr'.....);
foreach($maanden as $maand)
{
if($maand == strtolower(date("M")))
{
echo $maand;
}
}

?>
volgens mij is dit een stuk sneller xdddd. veel minder werk en zelfde output. kun je ook doen voor jaren,dagen.
dagen moet je effe beter nadenken.
ik snap je probleem niet helemaal meer. leg nog eens uit wat je wilt.

PHP:
<?php
$maand = date("m");
if(strlen($maand) == 1)
{
$maand = (int)'0'.date("m");
}
echo $maand;?>
volgens mij moet dit werken.
 
Ik had/heb volgende

PHP:
 if(date("Y") == 2012 && date("m") == 08 && date("d") == 06)  {  //eerste
  include "mijnbestand.html";
}
 elseif................enz,

dus als het 3 maart 2012 is...voeg bestand_a.html in

en als het 6 augustus 2012 is...voeg bestand_b.html in
enz...


Nou moest ik de ene keer 08 en 06 gebruiken (//eerste) en een andere keer weer een 8 of 6 , zonder dat ik iets aan de m of d veranderde(with leading zeros)

dus in de praktijk had ik 8 en 6 in januari en op een moment in maart moest ik weer geen 0 ervoor zetten ,anders geen output!
 
misschien een iets wat simpeler manier! (Niet getest, maar principe werkt)

PHP:
<?PHP
$mnd = ('Januari', 'Februari', 'Maart', 'April', 'Mei', 'Juni', 'Juli', 'Augustus', 'September', 'Oktober', 'November', 'December'};
echo $mnd[date('n')-1];
?>
 
Status
Niet open voor verdere reacties.

Nieuwste berichten

Terug
Bovenaan Onderaan