[RESOLU] Comparer une date celle d'aujourd'hui

Eléphanteau du PHP | 43 Messages

30 juil. 2017, 20:11

Bonjour, avant tout voici la partie de mon script en question:
if ($data['task']['start_date'] > date('d/m/Y g:i')) {
       echo 'Non disponible';
} 

if ($data['task']['end_date'] < date('d/m/Y g:i')) {
       echo 'Date dépassé';
}
Sachant que (Base de donnée):
$data['task']['start_date'] = 30/07/2017 10:58
$data['task']['end_date'] = 06/08/2017 10:58
J'aimerais que, comme vous voyez dans mon script, qu'il vérifie s'il est dans la période de temps indiqué. Qu'est-ce qui ne fonctionne pas, ou que je devrais changer ?

Merci d'avance,
Bien cordialement,
Agent5acad27

Mammouth du PHP | 2703 Messages

30 juil. 2017, 20:24

à première vue, c'est l'ordre français jour/mois au lieu de mois/jour qui pose problème.

Eléphanteau du PHP | 43 Messages

30 juil. 2017, 20:35

Le problème c'est que je suis obligé de l'enregistrer de cette façon, comment dois-je faire selon vous pour que cela fonctionne ? Ça fait 3 heures que j'essaye des choses, de l'aide extérieur me ferait pas de mal ;)

Bien cordialement,
Agent5acad27

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

30 juil. 2017, 21:11

Le problème c'est que je suis obligé de l'enregistrer de cette façon, comment dois-je faire selon vous pour que cela fonctionne ? Ça fait 3 heures que j'essaye des choses, de l'aide extérieur me ferait pas de mal ;)

Bien cordialement,
Agent5acad27
Pourquoi es-tu obligé de l'enregistrer comme cela en bdd ?
Car ça ressemble à une grosse erreur de conception de ne pas utiliser un champ SQL date pour enregistrer une date.
Le formatage pour l'afficher dans le format que tu veux doit se faire uniquement au moment de l'affichage.
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 43 Messages

30 juil. 2017, 22:54

En faites, j'utilise cette librairie javascript: https://eonasdan.github.io/bootstrap-datetimepicker/, donc il inscrit comme tel, il y aurait t'il un moyen alors de l'enregistrer en date à partir de cela ?

Bien cordialement,
KonScyence

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

31 juil. 2017, 10:04

Lors de l'enregistrement en bdd que tu fais probablement en PHP, il faut que tu fasses une transformation pour que la date soit dans le format standard MySQL : Y-m-d H:i:s
Quand tout le reste a échoué, lisez le mode d'emploi...

Eléphanteau du PHP | 43 Messages

02 août 2017, 20:23

Merci votre réponse m'a beaucoup aidé, pour ceux que cela intéresse, voici comment j'ai résolu le problème:

Je sauvegarde comme:
L'enregistrement en bdd [...] dans le format standard MySQL :
Y-m-d H:i:s
Puis pour l'afficher comme
d/m/Y H:i
je fait:
echo date('d-m-Y H:i', strtotime(str_replace('-', '/', $task['start_date'])));
Bien cordialement,
KonScyence