TUTO PHP | Voir quand a été posté un message

WhiiTe'

Administateur
Ancien staff
Inscription
22 Octobre 2011
Messages
14 706
Réactions
8 492
Points
32 425
1463218169-psd-header.png

Salut à tous,

Dans ce court tutoriel je vais vous apprendre à afficher d'une certaine manière la date de l'envoie d'un topic, en gros au lieu d'avoir un format comme 2016:04:26 - 14:56 on aura Posté il y a une minute.

Pour commencer vous devez avoir un système d'insertion de message / commentaire / commentaire , peu importe ce que vous aurez, ça marchera.

J'utiliserai l'éditeur de texte Atomet je ferai le tutoriel sur une shoutbox de test.


djamel2.png


Déjà vous devrez avoir dans votre table un champ temps qui a comme type Datetime.
Dans la requête SQL qui envoie les données dans la base de donnée, vous allez rajouter le champ temps et qui aura comme valeur un format de date spécifique, le voici :

PHP:
$temps = date('Y-m-d')." ".date('H-i-s');

La variable $temps contiendra 2016-05-14 08-42-38 ! :oui:


djamel2.png



Maintenant que nous avons inséré la date d'envoie du message, nous allons l'afficher, je vous conseille de créer un fichier function.php afin de mettre toutes vos fonctions à l'intérieur, comme ça si vous voulez utiliser le système ailleurs sur votre site il vous suffira d'inclure le fichier function.php.

Dans ce fichier function.php, mettez le code suivant :

PHP:
<?php

        function ago($time)
        {
            $temps_estime = time() - $time;

            if($temps_estime < 60)
            {
                return 'il y a un instant';
            }

            $condition = array(
                        12 * 30 * 24 * 60 * 60  =>  'an',
                        30 * 24 * 60 * 60       =>  'mois',
                        24 * 60 * 60            =>  'jour',
                        60 * 60                 =>  'heure',
                        60                      =>  'minute',
                        1                       =>  'seconde'
            );

            foreach($condition as $sec => $str)
            {
                $d = $temps_estime / $sec;

                if($d >= 1)
                {
                    $r = round( $d );
                    return 'Posté il y a ' . $r . ' ' . $str . ( $r > 1 ? 's' : '' );
                }
            }
        }

C'est cette fonction qui va changer votre format tout moche en un beau format, mais ce n'est pas tout, lors de l'affichage de la date il faut dire qu'on veut la convertir avec la fonction ago ci-dessus.


djamel2.png



Donc dans votre while / foreach (vu que j'affiche sur ma shoutbox) il faut rajouter cette ligne :
PHP:
$date = ago(strtotime($data['temps']));

$data['temps'] est ce que je récupère avec mon foreach, il contient la valeur qui est dans ma base de donnée, remplacez "temps" par le nom que vous avez donné à votre champ.

Si vous n'avez pas de while / foreach mettez le code en haut de votre page après avoir défini la variable qui contient la date qui est dans votre base de donnée.

Ça donnera quelque chose similaire à ça dans votre code -> et à ça sur votre page WEB -> !
Vous pouvez également voir comment afficher une certaine couleur selon le grade du membre.


djamel2.png


Et voilà vous savez maintenant comment afficher la date d'envoie d'un message d'une certaine manière, si vous avez une question ou le moindre soucis, n'hésitez pas à venir en privé ou à poser votre question ici pour que d'autres personnes puisses vous répondre.

Avant de terminer je tiens à préciser que la fonction n'a pas été fte par moi, on me l'a envoyé il y a 6 mois et il me semble que le code vient de Google.
:mmh:

Merci à @MGK SEC pour le header. :love:

:tchuss:
 
Dernière édition:
D

deleted585952

Salut à tous,

Dans ce court tutoriel je vais vous apprendre à afficher d'une certaine manière la date de l'envoie d'un topic, en gros au lieu d'avoir un format comme 2016:04:26 - 14:56 on aura Posté il y a une minute.

Pour commencer vous devez avoir un système d'insertion de message/ commentaire / commentaire , peu importe ce que vous aurez, ça marchera.

J'utiliserai l'éditeur de texte Atomet je ferai le tutoriel sur une shoutbox de test.


https://reality-gaming.fr/attachments/djamel2-png.61408/

Déjà vous devrez avoir dans votre table un champ temps qui a comme type Datetime.
Dans la requête SQL qui envoie les données dans la base de donnée, vous allez rajouter le champ temps et qui aura comme valeur un format de date spécifique, le voici :

PHP:
$temps = date('Y-m-d')." ".date('H-i-s');

La variable $temps contiendra 2016-05-14 08-42-38 ! :oui:


https://reality-gaming.fr/attachments/djamel2-png.61408/


Maintenant que nous avons inséré la date d'envoie du message, nous allons l'afficher, je vous conseille de créer un fichier function.php afin de mettre toutes vos fonctions à l'intérieur, comme ça si vous voulez utiliser le système ailleurs sur votre site il vous suffira d'inclure le fichier function.php.

Dans ce fichier function.php, mettez le code suivant :

PHP:
<?php

        function ago($time)
        {
            $temps_estime = time() - $time;

            if($temps_estime < 60)
            {
                return 'il y a un instant';
            }

            $condition = array(
                        12 * 30 * 24 * 60 * 60  =>  'an',
                        30 * 24 * 60 * 60       =>  'mois',
                        24 * 60 * 60            =>  'jour',
                        60 * 60                 =>  'heure',
                        60                      =>  'minute',
                        1                       =>  'seconde'
            );

            foreach($condition as $sec => $str)
            {
                $d = $temps_estime / $sec;

                if($d >= 1)
                {
                    $r = round( $d );
                    return 'Posté il y a ' . $r . ' ' . $str . ( $r > 1 ? 's' : '' );
                }
            }
        }

C'est cette fonction qui va changer votre format tout moche en un beau format, mais ce n'est pas tout, lors de l'affichage de la date il faut dire qu'on veut la convertir avec la fonction ago ci-dessus.


https://reality-gaming.fr/attachments/djamel2-png.61408/


Donc dans votre while / foreach (vu que j'affiche sur ma shoutbox) il faut rajouter cette ligne :
PHP:
$date = ago(strtotime($data['temps']));

$data['temps'] est ce que je récupère avec mon foreach, il contient la valeur qui est dans ma base de donnée, remplacez "temps" par le nom que vous avez donné à votre champ.

Si vous n'avez pas de while / foreach mettez le code en haut de votre page après avoir défini la variable qui contient la date qui est dans votre base de donnée.

Ça donnera quelque chose similaire à ça dans votre code -> et à ça sur votre page WEB -> !
Vous pouvez également voir comment afficher une certaine couleur selon le grade du membre.


https://reality-gaming.fr/attachments/djamel2-png.61408/

Et voilà vous savez maintenant comment afficher la date d'envoie d'un message d'une certaine manière, si vous avez une question ou le moindre soucis, n'hésitez pas à venir en privé ou à poser votre question ici pour que d'autres personnes puisses vous répondre.

Avant de terminer je tiens à préciser que la fonction n'a pas été fte par moi, on me l'a envoyé il y a 6 mois et il me semble que le code vient de Google.
:mmh:

:tchuss:
Derniere image non visible :p
 

Bibi GTP

GTP Nxt 🚀
Premium
Inscription
28 Septembre 2015
Messages
1 962
Réactions
1 322
Points
14 006
Salut à tous,

Dans ce court tutoriel je vais vous apprendre à afficher d'une certaine manière la date de l'envoie d'un topic, en gros au lieu d'avoir un format comme 2016:04:26 - 14:56 on aura Posté il y a une minute.

Pour commencer vous devez avoir un système d'insertion de message/ commentaire / commentaire , peu importe ce que vous aurez, ça marchera.

J'utiliserai l'éditeur de texte Atomet je ferai le tutoriel sur une shoutbox de test.


https://reality-gaming.fr/attachments/djamel2-png.61408/

Déjà vous devrez avoir dans votre table un champ temps qui a comme type Datetime.
Dans la requête SQL qui envoie les données dans la base de donnée, vous allez rajouter le champ temps et qui aura comme valeur un format de date spécifique, le voici :

PHP:
$temps = date('Y-m-d')." ".date('H-i-s');

La variable $temps contiendra 2016-05-14 08-42-38 ! :oui:


https://reality-gaming.fr/attachments/djamel2-png.61408/


Maintenant que nous avons inséré la date d'envoie du message, nous allons l'afficher, je vous conseille de créer un fichier function.php afin de mettre toutes vos fonctions à l'intérieur, comme ça si vous voulez utiliser le système ailleurs sur votre site il vous suffira d'inclure le fichier function.php.

Dans ce fichier function.php, mettez le code suivant :

PHP:
<?php

        function ago($time)
        {
            $temps_estime = time() - $time;

            if($temps_estime < 60)
            {
                return 'il y a un instant';
            }

            $condition = array(
                        12 * 30 * 24 * 60 * 60  =>  'an',
                        30 * 24 * 60 * 60       =>  'mois',
                        24 * 60 * 60            =>  'jour',
                        60 * 60                 =>  'heure',
                        60                      =>  'minute',
                        1                       =>  'seconde'
            );

            foreach($condition as $sec => $str)
            {
                $d = $temps_estime / $sec;

                if($d >= 1)
                {
                    $r = round( $d );
                    return 'Posté il y a ' . $r . ' ' . $str . ( $r > 1 ? 's' : '' );
                }
            }
        }

C'est cette fonction qui va changer votre format tout moche en un beau format, mais ce n'est pas tout, lors de l'affichage de la date il faut dire qu'on veut la convertir avec la fonction ago ci-dessus.


https://reality-gaming.fr/attachments/djamel2-png.61408/


Donc dans votre while / foreach (vu que j'affiche sur ma shoutbox) il faut rajouter cette ligne :
PHP:
$date = ago(strtotime($data['temps']));

$data['temps'] est ce que je récupère avec mon foreach, il contient la valeur qui est dans ma base de donnée, remplacez "temps" par le nom que vous avez donné à votre champ.

Si vous n'avez pas de while / foreach mettez le code en haut de votre page après avoir défini la variable qui contient la date qui est dans votre base de donnée.

Ça donnera quelque chose similaire à ça dans votre code -> et à ça sur votre page WEB -> !
Vous pouvez également voir comment afficher une certaine couleur selon le grade du membre.


https://reality-gaming.fr/attachments/djamel2-png.61408/

Et voilà vous savez maintenant comment afficher la date d'envoie d'un message d'une certaine manière, si vous avez une question ou le moindre soucis, n'hésitez pas à venir en privé ou à poser votre question ici pour que d'autres personnes puisses vous répondre.

Avant de terminer je tiens à préciser que la fonction n'a pas été fte par moi, on me l'a envoyé il y a 6 mois et il me semble que le code vient de Google.
:mmh:

:tchuss:
Good je vais lire ça :cool:

PS : tes images bug :espion:
 

Adil'

Apprenti Ingénieur Automobile
Premium
Inscription
5 Août 2012
Messages
4 208
Réactions
6 241
Points
24 764
Merci Aurélie.

Bonne après-midi,
Adil'
 

AwH

Super Modérateur
Ancien staff
Inscription
28 Septembre 2011
Messages
5 246
Réactions
2 672
Points
7 378
PHP:
$temps = date('Y-m-d')." ".date('H-i-s');

Tu te compliques WhiiTe', la fonction date() peux prendre date et heure en même temps, c'est de la micro optimisation, mais voilà ce que tu peux faire :

PHP:
$temps = date('Y-m-d H-i-s');

Ce qui te fait gagner un appel de fonction ;)
 

WhiiTe'

Administateur
Ancien staff
Inscription
22 Octobre 2011
Messages
14 706
Réactions
8 492
Points
32 425
Tu te compliques WhiiTe', la fonction date() peux prendre date et heure en même temps, c'est de la micro optimisation, mais voilà ce que tu peux faire :

PHP:
$temps = date('Y-m-d H-i-s');

Ce qui te fait gagner un appel de fonction ;)

Ah oui c'est clair que je me complique la vie :o :rofl: Merci :p
 
Haut