Avatar billede darkmoon Nybegynder
26. juni 2000 - 15:58 Der er 6 kommentarer og
1 løsning

dato der skal vendes

hejsa

jeg har brug for en stump php der kan vende en dato om, dvs fra dd/mm/yyyy eller dd-mm-yyyy til yyyy-mm-dd

jeg har prøvet med split() og implode() osv, men det hakker for mig, hjælp :)
Avatar billede darkmoon Nybegynder
26. juni 2000 - 16:00 #1
ps. samtidig skal jeg har verificeret at en dato ikke er mindre end 14 dage ude i fremtiden.

(nu i er igang ;))
Avatar billede erikjacobsen Ekspert
26. juni 2000 - 16:23 #2
En ting af gangen

  $dato= "26/6/2000";
  $dato= "26-06-2000";  // etc.
  if (ereg("^([0-9]+)(-|/)([0-9]+)(-|/)([0-9]+)$",$dato,$a)) {
    $nydato = $a[5]."-".$a[3]."-".$a[1];
  } else {
    echo "fejl i $dato\n";
  }

ikke afprøvet...
Avatar billede darkmoon Nybegynder
28. juni 2000 - 10:09 #3
den laver en parse error i:
if (ereg("^([0-9]+)(-|/)([0-9]+)(-|/)([0-9]+)$",$dato,$a)) {

?
Avatar billede erikjacobsen Ekspert
28. juni 2000 - 10:21 #4
Det gør den da ikke. Jeg har lagt nedenstående kode på
http://www.hasselager.net/nvr/dato.php
Tror du ikke, du har glemt et semikolon i den foregående linie??

<?
  $dato= "26/6/2000";
  $dato= "26-06-2000";  // etc.
  if (ereg("^([0-9]+)(-|/)([0-9]+)(-|/)([0-9]+)$",$dato,$a)) {
    $nydato = $a[5]."-".$a[3]."-".$a[1];
    echo $nydato;
  } else {
    echo "fejl i $dato\n";
  }
?>
Avatar billede darkmoon Nybegynder
28. juni 2000 - 15:20 #5
nix, jeg har taget koden direkte herfra ...
Avatar billede darkmoon Nybegynder
28. juni 2000 - 16:15 #6
ok nu virker det, har du en idé til det andet ?
Avatar billede erikjacobsen Ekspert
28. juni 2000 - 20:16 #7
Fint nok - er det ikke rart at få overstået én ting, før man går i gang med den næste.
Det er egentlig så rart at man burde oprette 2 spørgsmål til det ;-)

  Nå du har to datoer i variabler med dag, måned og år (4 cifret):

  $d1, $m1, $y1    (første dato)
  $d2, $m2, $y2    (anden dato, den længst ude i fremtiden)

  Nu laver du 2 "timestamps" som bare er antal sekunder siden verdens skabelse
  (som var engang i 1970):

  $t1 = mktime(0,0,0,$m1,$d1,$y1);
  $t2 = mktime(0,0,0,$m2,$d2,$y2);

  Udregner du $t2-$t1 for du antal sekunder mellem midnat de to dage.
  Udregner du ($t2-$t1)/(60*60*24) får du antal dage imellem, og tester du
  så om dette tal er mindre end 14 får du dit ønskede svar.
 

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