j'ai une base de données qui organise des événements dans le format suivant:PHP Calcul date de l'événement suivant
Horaires
id
show_id
starttime - datetime
endtime - datetime
repeatuntil - datetime
repeat - int
nthdayofmonth - int
repeatmultiple - int
show_id détient le numéro d'identification pour le spectacle qui est stocké.
Les émissions peuvent être stockées plusieurs fois pour différentes variations récurrentes ou différentes variations de jour/heure. Startime, endtime et repeatuntil sont un peu flagrants quant à ce qu'ils font.
répétition est le type de répétition:
1 - hourly
2 - daily
3 - weekly
4 - monthly
5 - yearly
nthdayofmonth ne suis pas 100% si cela est nécessaire ou sera utilisé repeatmultiple doit être utilisé lorsque les événements sont recherchés à répéter toutes les deux semaines ou tous les deux mois ainsi de suite ...
ce que je me bats avec le code qui calcule quand le prochain événement se produit, j'ai essayé différentes solutions de l'internet et stackoverflow, mais je suis encore en difficulté. La majorité du temps mon code finit dans une boucle infinie et est incapable de trouver la bonne date pour l'événement suivant. Si quelqu'un est capable d'aider avec le codage d'une fonction qui peut passer en boucle pour trouver la prochaine fois qu'un événement se produit, j'apprécierai beaucoup les aides car je suis très frustré et pas très loin de quand j'ai commencé.
Je ne pense pas que vous voulez vraiment une boucle pour cela. Avez-vous essayé de créer un objet date avec l'occurrence connue, puis d'utiliser date_add() pour passer au suivant? –
@Rob Allen mais cela ne fonctionnerait que pour la première fois que l'événement est répété? – Aran
vous avez raison. Lorsque vous exécutez cela, vous obtiendrez l'événement suivant et seulement l'événement suivant. Mais cette fonction peut être la pierre angulaire de tous les autres processus dont vous avez besoin. Un refactoring pourrait vous donner la Nième instance ou N nombre de dates. Finalement, vous pouvez le brancher dans une boucle pour construire un calendrier ou une autre collection de dates d'événements. –