Select datum tussen 2 datums beginnend op vrijdags tot volgende vrijdag

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Thomas de vries

thomas de vries

23/07/2017 15:54:06
Quote Anchor link
Goedendag,

Ik zit met het volgende.
in mijn database heb ik een x aantal datums staan. Van deze week.
Nu is het zo dat in onze sheets de week begint op vrijdags 18:00 uur tot de volgende vrijdag 18:00 uur.

Het zou mooi zijn dat ik de gegevens die tussen de 2 vrijdagen ligt eruit kan halen.
Echter zou het nog mooier zijn dat dit automatisch gebeurt zonder dat ik elke keer de datums handmatig moet invullen.

Is dit mogelijk met de functie date?

Ik dien dus eerst alle vrijdagen van het jaar te hebben.
Dan moet die controleren of de gegevens van de database tussen deze vrijdag ligt en de eerst volgende vrijdag.

Heb al heel wat sites bezocht maar ben dit nog niet tegen gekomen. Of heb niet goed gezocht.

Toevoeging op 23/07/2017 18:06:45:

Edit. Opgelost.
Door dit te gebruiken.

$friday = date( 'Y-m-d', strtotime( 'friday this week, 18:00' ) );
$nextWeek = date( 'Y-m-d', strtotime( 'next friday, 18:00' ) );

Bleek dat ik dus niet goed had gekeken.
 
PHP hulp

PHP hulp

30/04/2024 22:11:30
 
Ivo P

Ivo P

23/07/2017 18:07:52
Quote Anchor link
Je gaat dus uit van een gegeven tijdstip (laten we zeggen NU).

Daarvan wil je weten wat de voorafgaande vrijdag is. En vanaf die datum 18:00 tot 1 week later wil je alle records hebben.

Je kunt dus altijd 7 dagen aftrekken van de gegeven datum tenzij het nu vrijdag is EN na 18:00 is.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$nu
= new DateTime();

if($nu->format('N') == 5 && $nu->format('G') >= 18) {
   $start = clone $nu;
   $start->setTime(18,00);
}

else {
   $start = clone $nu;
   $start->modify('last friday');
   $start->setTime(18,00);
}


$sql = "SELECT * FROM table WHERE tijdstp > :start AND tijdstp < :start + INTERVAL 7 DAY";

?>


Toevoeging op 23/07/2017 18:12:22:

$friday = date( 'Y-m-d', strtotime( 'friday this week, 18:00' ) );

klopt die regel wel? Daar komt vandaag namelijk 28 juli uit.
 
Thomas de vries

thomas de vries

24/07/2017 14:49:30
Quote Anchor link
Hoi ivo,

Bedankt ik zal er eens na kijken.
Nee die regel klopte niet kwam ik ook achter. moest zijn
$friday = date( 'Y-m-d H:i:s', strtotime( 'friday last week, 18:00') );
 
Ivo P

Ivo P

24/07/2017 14:53:29
Quote Anchor link
tenzij het nu vrijdag om 19:00 is.

dan wil je niet naar vorige week, maar slechts de klok op 18:00 zetten.
 
Thomas de vries

thomas de vries

24/07/2017 15:08:47
Quote Anchor link
hoi ivo,
Ja ik kom erachter als ik het doe zoals mijn manier en ik zet de klok op zaterdag.
Dat die dan nog steeds aangeeft

2017-07-14 18:00:00
2017-07-21 18:00:00

in plaats van
2017-07-21 18:00:00
2017-07-28 18:00:00

Pas wanneer het maandag is dan geeft hij de correct data weer.




Toevoeging op 24/07/2017 15:16:47:

Edit.

Met jou code schijnt het te werken ga het nog even goed testen.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.