Avatar billede jespernerd Nybegynder
13. maj 2009 - 09:50 Der er 13 kommentarer

Kalender hjælp

Hejsa, jeg ønsker lidt hjælp til at komme i gang med et kalender script/booking script.

Jeg har i forevejen lavet kalenderen og hetning af data, men men..

Hvordan opstiller jeg et skema der (ud fra php) kan lave f.eks:

10.30-11.00        ????
11.00-11.30        ????
11.30-12.00        ????

Jeg har forsøgt mig lidt. Men gider ikke gøre det manualt, da administratoren skal kunne ændre "mellemrums" minutterne ved hvert (som i mit eksempel er 30 minutter).

På forhånd tak.
Avatar billede jespernerd Nybegynder
13. maj 2009 - 10:04 #1
Man skal også kunne vælge start og slut tidspunkt, så man kan sige, dagen starter fra kl. 10.00 til 17.00, hvor den så regner:

10.00-10.30
10.30-11.00
....
....
....
15.30-16.00
16.00-16.30
....
Avatar billede jespernerd Nybegynder
13. maj 2009 - 10:54 #2
<?php
for ( $i=10;$i<=17;$i++) {

  if ( $i==17) {
      echo $i . ".00-" . $i . ".00<br>";
  } else {
      echo $i . ".00-" . $i . ".30<br>";
  }
}
?>


Rigtig ringe løsning
Avatar billede jespernerd Nybegynder
13. maj 2009 - 10:57 #3
LAver jeg f.eks denne, kan jeg jo ikke sætte den til 3 timer i mellem tidspunkterne jo :'( Hvad gør jeg?

<?php
$startTidspunkt = 10; //10 om morgenen
$slutTidspunkt  = 17; //17 om aftenen

$mellemrum = 50; //30 minutter.

for ( $i=$startTidspunkt;$i<=$slutTidspunkt;$i++){
  if ( $i==17){
      echo $i . ".00-" . $i . ".00<br />";
  } else {
      echo $i . ".00-" . $i . "." . $mellemrum . "<br />";
  }
}
?>
Avatar billede zynzz Praktikant
13. maj 2009 - 17:16 #4
Brug unixtime, gør det nemmere at fast sætte datoer og tidspunkter...
Avatar billede jespernerd Nybegynder
14. maj 2009 - 12:34 #5
Ja, det var jo ikke meget hjælp :) Ingen der kan opbygge et eksempel på at fremvise disse tidspunkter
Avatar billede zynzz Praktikant
14. maj 2009 - 19:10 #6
Måske dette kan hjælpe dig videre: ?

<?php
//PÅ EN TIME ER DER 3600 SEKUNDER

//TIDEN PÅ START DAGEN
$TidDag  = mktime(0, 0, 0, date("m")  , date("d"), date("Y"));

//TIDEN NU
$TidNu = time();

//ANTAL TIDER DER BØR VÆRE PÅ EN DAG
$AntalTider = 1; // ANTAL TIDER

//START
$StartTid = 10*3600; // KL. 10 * 3600 SEKUNDER

//SLUT
$SlutTid = 17*3600; // KL. 17 * 3600 SEKUNDER

$TidMellem = $SlutTid-$StartTid;
$Mellem = floor($TidMellem/$AntalTider);


$x = 1;

$TidDag += $StartTid;

while($x <= $AntalTider){

echo date("H:i", $TidDag)."-";
$TidDag += $Mellem;
echo date("H:i", $TidDag)."<br>";


$x++;
}
?>
Avatar billede jespernerd Nybegynder
15. maj 2009 - 09:48 #7
10:00-10:42
10:42-11:24
11:24-12:06
12:06-12:48
12:48-13:30
13:30-14:12
14:12-14:54
14:54-15:36
15:36-16:18
16:18-17:00

Næsten rigtigt ! :-) Jeg skal kunne sætte mellemrummet i mellem intervallerne, sådan det bliver:
10:00 -10:30
10:30-11:00
11:00:11:30



<?php
$TidDag  = mktime(0, 0, 0, date("m")  , date("d"), date("Y"));
$TidNu = time();

$AntalTider = 10;

$StartTid = 10*3600; // KL. 10 * 3600 SEKUNDER
$SlutTid = 17*3600; // KL. 17 * 3600 SEKUNDER

$TidMellem = $SlutTid-$StartTid;
$Mellem = floor($TidMellem/$AntalTider);

$x = 1;

$TidDag += $StartTid;

while($x <= $AntalTider)
{
  echo date("H:i", $TidDag)."-";
  $TidDag += $Mellem;
  echo date("H:i", $TidDag)."<br>";


  $x++;
}
?>
Avatar billede zynzz Praktikant
18. maj 2009 - 18:24 #8
Det er jeg ikke med på.., forklar forklar...
Avatar billede jespernerd Nybegynder
22. maj 2009 - 09:57 #9
Ligenu outputter den forkert intervaller som du kan se her, bliver klokkeslættet ikke korrekt.

10:00-10:42
10:42-11:24
11:24-12:06
....

Mellem 10.00 og 10.42 er der 42 minutter? Det skal være et interval på 60 minutter (evt. lav en variable i php, så jeg selv kan sætte intervallet).

Ellers næsten rigtigt, håber du kan hjælpe med det
Avatar billede jespernerd Nybegynder
25. maj 2009 - 12:31 #10
Øv
Avatar billede zynzz Praktikant
26. maj 2009 - 20:49 #11
Jeg har ikke lige været på den seneste tid..., hvad så hvis intervallet ikke går op ?
Avatar billede zynzz Praktikant
26. maj 2009 - 20:50 #12
Men er det ikke bare $AntalTider du skal sætte til noget andet end 10 ??
Avatar billede zynzz Praktikant
26. maj 2009 - 20:55 #13
Eller du kunne sætte $Mellem til 1800 = ½ time..
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