Avatar billede danishhoward Nybegynder
13. maj 2008 - 12:19 Der er 12 kommentarer og
1 løsning

Identificer bestemt dag

Hej.

Jeg søger lidt hjælp med at finde frem til en løsning på følgende problem.

Jeg skal fine alle mandage i en måned, og så kunne indsætte data ud fra de datoer i en database.

Altså en nem måde at indsætte ensartet data i sqldatabase,ud fra en bestemt dag.
Avatar billede johny Nybegynder
13. maj 2008 - 12:30 #1
Så vidt jeg kunne forstå på dokumentationen for "date", så skal du blot bruge følgende:

$dayOfWeek = date("w");

Så vil $dayOfWeek være et tal fra 0 til 6, hvor 0 er en søndag, 1 mandag osv.

Det du muligvis skal tage højde for er tidszone. Så du kan inden du kalder date funktionen kalde følgende:
date_default_timezone_set('Europe/Copenhagen');
Avatar billede danishhoward Nybegynder
13. maj 2008 - 13:08 #2
Det er rigtigt, men som jeg kan se, så vil det kun være en dag jeg får ud af det, og ikke specifike datoer for alle mandage i en måned.
Avatar billede johny Nybegynder
13. maj 2008 - 15:27 #3
Ah, så misforstod jeg hvad du ville. Jeg troede det var current date du søgte efter. Men hvor mange mandage er det så du vil finde? Dem i current måned, eller i en måned du vælger?
Avatar billede danishhoward Nybegynder
13. maj 2008 - 15:59 #4
dem i en måned som jeg vælger. Nogle ideer?
Avatar billede fant0mas Nybegynder
13. maj 2008 - 17:39 #5
$date = $_POST['date'];

$format = '/^(\d\d\d\d)-(\d\d)-(\d\d)$/';

$dates = array();
preg_match($format, $date, $dates);

$year = $dates[1];
$month = $dates[2];
$day = $dates[3];

$currentTime = mktime(0, 0, 0, $month, $day, $year);

for($i=0;$i<=$_POST[antalDage];$i++){

$dato = date('Y-m-d', $currentTime+(7*$i*24*60*60));
//INDSÆT I DB

}

Så let kan det vel gøres? $_POST[antalDage] er hvor mange f.eks mandage frem der skal skrives i.
Avatar billede danishhoward Nybegynder
13. maj 2008 - 18:03 #6
Hvad har du $date = $_POST['date']; for? ud fra hvad jeg kan teste, har den ingen effekt?
Avatar billede fant0mas Nybegynder
13. maj 2008 - 18:34 #7
Date er start datoen. For eksempel:
2008-05-13
Avatar billede danishhoward Nybegynder
13. maj 2008 - 18:45 #8
My god. ofc. Min fejl..

Mange tak fant0mas - du må meget gerne lægge et svar. Virker fint ud fra de kriterier jeg har sat.

Tak.
Avatar billede fant0mas Nybegynder
13. maj 2008 - 19:01 #9
Svar. :0)
Avatar billede johny Nybegynder
13. maj 2008 - 20:11 #10
men ja, den fortæller vel ikke om der er 4 eller 5 mandage i en måned, gør den?
Avatar billede fant0mas Nybegynder
13. maj 2008 - 21:05 #11
Nej, det er vel i og for sig også ligemeget. Men hvis du gerne vil se et kode eksempel, til at identificere dage i en måned, så sig endelig til. Jeg synes bare det jeg smed var nemmere.
Avatar billede johny Nybegynder
13. maj 2008 - 22:28 #12
ah ok, troede bare det var det han skulle bruge.
Avatar billede fant0mas Nybegynder
14. maj 2008 - 09:47 #13
Vil man på en bestemt dag og indefor én måned indsætte, så kunne det måske se sådan ud:

for($i=0;TRUE;$i++){
if(date('m', $currentTime+(7*$i*24*60*60)) == date('m',$currentTime)){
$dato = date('Y-m-d', $currentTime+(7*$i*24*60*60));
//INDSÆT I DB
}else{
break;
}
}
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