Wiliwilliam | [PHP] savoir si une date est comprise entre 2 autres |
1 #1 |
---|---|---|
La loi c'est moi
Inscrit: 07/04/2012 19:19
Post(s): 38301
Karma: 19026 |
J'ai une valeur timestamp en php
Je veux savoir si elle est comprise entre 17:00:00 et 17:59:59 J'ai un peu du mal à visualiser comment je pourrais, simplement, construire un if. Je suis sur que la solution est très simple mais j'ai pas assez de recul donc j'ai pas d'idée. Il y a une fonction magique? je suis en train de m’empêtrer dans dans date_diff et des dates_create... c'est assez laborieux.
Contribution le : 02/07/2018 19:08
|
|
_________________
>> Récompenses si tu passes en article << |
||
Signaler |
Invité | 1 #2 |
|
---|---|---|
FantômeInvité
|
@Wiliwilliam
Ca ne marcherait pas avec genre: $today_time = $timestamp (en secondes ou en centièmes) modulo (24*3600) ou 24*360000 si tu veux les centièmes. if ( $today_time > 3600*17 && today_time < 3600 * 18) then la vie est belle (là aussi 360000 et pré-faire les multiplications si php ne le fait pas tout seul, je sais pas) je pseudochie du php pardon, j'aime pas ce langage du coup j'y ai très peu touché, j'ai pas la syntaxe. En terme de perfs c'est 1 allocation, 1 modulo, 2 comparaisons et 1 if, et tu sais que ça ne va pas te péter à la gueule, celle-là elle passe tes tests à travers les âges. Le seul risque c'est un modulo foireux mais là tu vas mettre une valeur numérique donc aucune chance. Je soutiens ton choix d'un petit if bien placé! Mon avis sur ces objets datetime à travers les langages c'est que c'est bien pour formatter une sortie, en dehors de ça c'est verbeux et on fait plus rapide, plus clair et plus court sans.
Contribution le : 02/07/2018 19:43
|
|
Signaler |
Invité | 1 #3 |
|
---|---|---|
FantômeInvité
|
Manipule des objets de type \Datetime et tu feras ce que tu veux et ce plus simplement qu'avec des timestamp
Contribution le : 02/07/2018 22:48
|
|
Signaler |
Wiliwilliam | 0 #4 |
|
---|---|---|
La loi c'est moi
Inscrit: 07/04/2012 19:19
Post(s): 38301
Karma: 19026 |
@Piteur @yakow j'ai vu vos réponses hein, merci beaucoup! j'ai juste pas encore fini de tester Je vous tiendrai au courant de ce que j'ai finalement décidé de faire.
Contribution le : 03/07/2018 15:10
|
|
_________________
>> Récompenses si tu passes en article << |
||
Signaler |
Wiliwilliam | 0 #5 |
|
---|---|---|
La loi c'est moi
Inscrit: 07/04/2012 19:19
Post(s): 38301
Karma: 19026 |
@Piteur @yakow Finalement, et très bêtement, sans passer par des objets:
$date = "16:30:00"; $a = "16:00:00"; $b="17:00:00"; if (($date >= $a) && ($date =< $b)) {echo "ENTRE";} else {echo "PAS ENTRE";} Je ne savais pas que ça pouvait marcher comme ça, je me sens
Contribution le : 03/07/2018 15:33
|
|
_________________
>> Récompenses si tu passes en article << |
||
Signaler |
lvishd | 0 #6 |
|
---|---|---|
Je poste trop
Inscrit: 28/11/2010 19:49
Post(s): 12664
Karma: 5543 |
Ce thread
Contribution le : 03/07/2018 15:51
|
|
Signaler |
Koreus | 0 #7 |
|
---|---|---|
Webhamster
Inscrit: 03/07/2002 23:58
Post(s): 75369
Karma: 36948 |
Citation :
Il n'y pas de valeur timestamp dans ton code. Pour rappel, le timestamp est un entier et désigne le nombre de secondes écoulées depuis le 1er janvier 1970
Contribution le : 12/07/2018 17:44
|
|
_________________
|
||
Signaler |
Wiliwilliam | 0 #8 |
|
---|---|---|
La loi c'est moi
Inscrit: 07/04/2012 19:19
Post(s): 38301
Karma: 19026 |
@Koreus dans ce code, il n'y a pas de timestamp car j'ai réalisé que les opérateurs logiques fonctionnaient avec des formats type date. du coup mon timestamp d'origine, je l'ai converti avec la fonction date pour obtenir la variable $date dans le message que tu as quote
Contribution le : 12/07/2018 17:57
|
|
_________________
>> Récompenses si tu passes en article << |
||
Signaler |
Le sujet est verrouillé