- Inscription
- 22 Octobre 2011
- Messages
- 14 706
- Réactions
- 8 492
- Points
- 32 425
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.
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 !
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 :
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.
Donc dans votre while / foreach (vu que j'affiche sur ma shoutbox) il faut rajouter cette ligne :
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 ->
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.
et à ça sur votre page WEB ->
Vous devez être inscrit pour voir les liens ! Inscrivez-vous ou connectez-vous ici.
!Vous pouvez également voir comment afficher une certaine couleur selon le grade du membre.
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é faîte par moi, on me l'a envoyé il y a 6 mois et il me semble que le code vient de Google.
Merci à @MGK SEC pour le header.
Dernière édition: