Php et Dates

Fermé
Inconnu - Modifié par Inconnu le 14/02/2011 à 18:50
swoog42 Messages postés 1059 Date d'inscription mercredi 30 septembre 2009 Statut Membre Dernière intervention 16 décembre 2018 - 16 févr. 2011 à 19:50
Bonjour,


Sur mon site, il y a un système de post.

On peut choisir la validité de fin du post.

Le problème, c'est que les dates en php, je n'y connais rien du tout ...

Alors je demande votre aide, comment fait-on pour calculer une date par rapport à l'instant présent et faire une action avec l'élément si la date est dépassée ?

Et aussi en quoi faut-il mettre notre type de champs dans notre BDD (varchar, date, time ???)
A voir également:

7 réponses

Bonsoir,
Pour ma part j'aime bien datetime pour les champs sql, ca donne quelque chose comme ca: 2011-02-14 21:20:32 et pour avoir juste la date en francais

$date = strftime( 'Le %d/%m/%Y' , strtotime( /*ta variable ici*/ ) ) ;
https://www.php.net/manual/fr/function.strftime.php

Sinon voila un debut d'info avec les champs sql:
https://openclassrooms.com/fr/courses/918836-concevez-votre-site-web-avec-php-et-mysql/915206-les-dates-en-sql

En php tu as "time()" [timestamp http://www.timestamp.fr/ de maintenant]
mais utilise "$_SERVER['REQUEST_TIME']" si tu peux car deja calculer ;-)
comme c'est en secondes alors tu peux faire des maths:

$t = $_SERVER['REQUEST_TIME'] + 60; // + 1 min ou     
"                           " + 60 * 60 * 2 ; // + 2 h ou     
"                           " - 3600; // -1h     

if ( $t /* ta condition ici */ ) {/*Action ici*/}      

--
Ce qui se conçoit bien s'énonce clairement... mouais enfin sauf en informatique !
0
swoog42 Messages postés 1059 Date d'inscription mercredi 30 septembre 2009 Statut Membre Dernière intervention 16 décembre 2018 244
15 févr. 2011 à 18:35
Perso, dans la BDD je préfère stocker les dates en BIGINT et y mettre les timestamps... moins de problèmes de compatibilité et de conversions...
0
Ok merci mais cela ne me sert pas à calculer si la date est expirée ou pas... !?
0
Utilisateur anonyme
15 févr. 2011 à 14:10
Ah ouai tu veux du prémaché a ce que je vois...
Bon elle est en quel format ta date ? ;-)
0
Bah apres tu fais une partie avec différentes contraintes.

"
Si

(date du jour) est égal ou supérieur à ((date du post) + 30 jours) (par exemple)

alors
faire
---sa
---sa
---sa
[...]
"
Apres faut juste que tu te débrouille pour y retranscrire en php
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
"Bah apres tu fais une partie avec différentes contraintes.

"
Si

(date du jour) est égal ou supérieur à ((date du post) + 30 jours) (par exemple)

alors
faire
---sa
---sa
---sa
[...]
"
Apres faut juste que tu te débrouille pour y retranscrire en php"


mais justement c'est ce que je cherche à faire... ?
0
Utilisateur anonyme
16 févr. 2011 à 08:51
Re, j'avais poster le code mais on dirait qu'il y a eu un bug donc le voici:

if ( is_float ( tonNombre / 2 ) )
{
    echo 'impair' ;
}
else
{
    echo 'pair';
}
--
Ce qui se conçoit bien s'énonce clairement... mouais enfin sauf en informatique !
0
swoog42 Messages postés 1059 Date d'inscription mercredi 30 septembre 2009 Statut Membre Dernière intervention 16 décembre 2018 244
Modifié par swoog42 le 16/02/2011 à 19:50
j'aurais plutot fait
if(tonNombre % 2) 
    echo "impair"; 
else 
    echo "pair";

mais bon, chacun son style ^^
0
dmganges Messages postés 150 Date d'inscription mercredi 29 octobre 2008 Statut Membre Dernière intervention 25 novembre 2013 19
16 févr. 2011 à 09:35
Bjr,

Ben juste un exemple, pas un cours... je serai un peu lège :

//// Récupération de la date actuelle //// Différents formats..............;-))

//$date = date("d-m-Y");
//$date = date("j m Y H:i:s");
$date = date("Y-m-j H:i:s");
//// Connexion à la base mySQL ////

@MYSQL_CONNECT($serveur,$utilisateur,$mdp) or die ('Connexion impossible');
@MYSQL_SELECT_DB($db) or die ('Connexion à la base $db impossible');

//// on ajoute une ligne////

// echo "Adresse : ". "$adress". " Date : ". "$date". " Pgm : ". "$pgm". "<br>";

$insert = 'INSERT INTO compteur (ip,date,pgm,referer) VALUES("'.$adress.'", "'.$date.'", "'.$pgm.'", "'.$referer.'")';
0