Avatar billede stroke1 Nybegynder
16. november 2004 - 00:41 Der er 14 kommentarer og
1 løsning

strlen på dato

Jeg skal finde længden af en streng i et datofelt, men den skriver wrong parameter count..
Hvad er fejlen ??

<tr>
    <td>
      <center><table border="1">
        <tr>
          <td>Starter: </td>
        <?  if (strlen($row[startdato],j)<10) {?>
          <td><? echo date("0j-n-Y G:i", $row[startdato]); ?></td>
        </tr> <? } ?>
        <tr>
          <td>Slutter:</td>
          <td><? echo date("j-n-Y G:i", $row[slutdato]); ?></td>
        </tr>
      </table></center>
    <br><br><br></td>
  </tr>
Avatar billede jaw Nybegynder
16. november 2004 - 00:43 #1
Hvad laver dit ",j" i strlen?

Hvis du vil have længden, er det bare: strlen($row['startdato']);
Avatar billede stroke1 Nybegynder
16. november 2004 - 00:48 #2
j=dato n=måned Y=årstal, og jeg vil undersøge længen af j. er den under 10 skal der et 0 foran i udskriften !
Avatar billede jaw Nybegynder
16. november 2004 - 00:50 #3
Det forstår jeg ikke... Jeg kan godt forstå hvad "j" er i date(), men du bruger også "j" i din strlen().

$row[startdato] har en værdi, hvilken? Er det den der skal undersøges for længde? Eller er det date("j") du vil undersøge for længde?
Avatar billede stroke1 Nybegynder
16. november 2004 - 00:53 #4
det er date("j") jeg vil undersøge !
Avatar billede jaw Nybegynder
16. november 2004 - 00:54 #5
Så skal du bruge :

if(strlen(date("j"))<10) {

...i stedet for...
Avatar billede stroke1 Nybegynder
16. november 2004 - 00:59 #6
ja okay så skal det selvfølgelig være <2 når det er datoen !
Avatar billede stroke1 Nybegynder
16. november 2004 - 00:59 #7
det er jo længden og ikke værdien af datoen
Avatar billede jaw Nybegynder
16. november 2004 - 01:03 #8
date("j") returnerer i dag: 16.

dvs. at dit udtryk vil se sådan ud:
if(strlen(16)<2) { (hvis det er 2 du retter det til)

I dag er det ikke tilfældet, da 16 er 2 tegn. Derfor er det:
if(strlen(date("j"))<2) {

du skal bruge hvis du vil vide om dags dato er mindre end 2 tegn i længde...
Avatar billede stroke1 Nybegynder
16. november 2004 - 01:09 #9
hvorfor virker dette ikke
<?  if (strlen(date("j"))<2 && strlen(date("n"))>1 && strlen(date("G"))<2) {?>
          <td><? echo date("0j-n-Y 0G:i", $row[startdato]); ?></td>
        </tr> <? } ?>


på datoen : 1-11-2004 7:20
Avatar billede jaw Nybegynder
16. november 2004 - 01:12 #10
ahh, nu tror jeg, jeg forstår hvad du mener...

Prøv:

<?  if (strlen(date("j", $row['startdato']))<2 && strlen(date("n", $row['startdato']))>1 && strlen(date("G", $row['startdato']))<2) {?>
Avatar billede stroke1 Nybegynder
16. november 2004 - 01:20 #11
ja nu tror jeg det virker. laver lige alle 9 kombinationer inden du får dine point :-)
Avatar billede jaw Nybegynder
16. november 2004 - 01:23 #12
Det er jo også bare i orden. Men jeg vil hoppe i køjen, så smider et svar i tilfælde af at det nu lykkes...

Go'nat og held og lykke :)
Avatar billede stroke1 Nybegynder
16. november 2004 - 01:38 #13
det virker tak for hjælpen, men der er selvfølgelig kun 8 kombinationer :-)
Avatar billede schaefner Juniormester
16. november 2004 - 12:30 #14
Hvorfor ikke bare bruge: date("j-n-Y G:i");

d = Day of the month, 2 digits _with_ leading zeros (01-31)
j = Day of the month _without_ leading zeros (1-31)

Med venlig hilsen
Jesper Sørensen
Avatar billede schaefner Juniormester
17. november 2004 - 10:47 #15
Det ville jo så være nok at udskifte "j" med "d"
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester