begin process at 2008 08 29 05:48:19
1 233 514 membres
54 nouveaux aujourd'hui
14 291 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

NOMBRE DE JOUR DEPUIS


Information sur la source

Catégorie :Date / Heure Classé sous : timestamp, date, jour Niveau : Débutant Date de création : 19/02/2006 Vu : 6 598

Note :
5,25 / 10 - par 4 personnes
5,25 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (10)
Ajouter un commentaire et/ou une note

Description

Ayant besoin d'afficher des nouvelles de moins de 30 jours sur un site, voici le code que j'ai fait. Il s'appui directement sur le timestamp

Le variable $diff_date est le nombre de jour de différence.

Source

  • $date_jour = time();
  • // On transforme la date AAAA/MM/JJ de $date_test en valeur timestamp
  • $annee = substr($date_test, 0, 4);
  • $mois = substr($date_test, 5, 2);
  • $jour = substr($date_test, 8, 2);
  • $timestamp_date_test = mktime( 0, 0, 0, $mois, $jour, $annee);
  • // On compare les valeurs
  • $soutraction_date = $date_jour - $timestamp_date_test;
  • $diff_date = $soutraction_date / (60*60*24);
$date_jour = time();
// On transforme la date AAAA/MM/JJ de $date_test en valeur timestamp
$annee = substr($date_test, 0, 4);
$mois = substr($date_test, 5, 2);
$jour = substr($date_test, 8, 2);
$timestamp_date_test = mktime( 0, 0, 0, $mois, $jour, $annee);

// On compare les valeurs
$soutraction_date = $date_jour - $timestamp_date_test;
$diff_date = $soutraction_date / (60*60*24);
  • signaler à un administrateur
    Commentaire de TheSin le 20/02/2006 09:27:48

    slt
    t'as plus simple :
    echo intval((time()-strtotime($mois.'/'.$jour.'/'.$annee))/(3600*24));

  • signaler à un administrateur
    Commentaire de erce78 le 20/02/2006 14:05:32

    Salut,

    Le but était de détailler au mieux pour tout le monde puisse comprendre.

  • signaler à un administrateur
    Commentaire de kankrelune le 20/02/2006 14:33:23

    tu peux faire...

    list($annee,$mois,$jour) = explode('/',$date_test);

    au lieu de...

    # $annee = substr($date_test, 0, 4);
    # $mois = substr($date_test, 5, 2);
    # $jour = substr($date_test, 8, 2);

    et tu peux racourcir la fin aussi...

    list($annee,$mois,$jour) = explode('/',$date_test);
    $diff_date = ((time() - mktime( 0, 0, 0, $mois, $jour, $annee)) / (60*60*24));

    J'ais pas testé mais ça devrait marcher comme ça... .. . ;o)

    @ tchaOo°

  • signaler à un administrateur
    Commentaire de TheSin le 20/02/2006 19:22:00

    bin franchement, je comprend mieux avec ma ligne ....
    enfin bon, si tu pouvais m'expliquer ce qu'il y a a comprendre a part un peu de maths stp.

  • signaler à un administrateur
    Commentaire de coucou747 le 20/02/2006 20:30:00

    perso, je penses que TheSin a raison...

  • signaler à un administrateur
    Commentaire de Anthomicro le 20/02/2006 22:35:31

    $limite_trente_jours=time()-30*24*3600; //à stocker en dur...

    sinon si c'est depuis un timestamp :

    echo (time()-$time2)%(30*24*3600); //nombre de jours depuis un timestamp...

    sinon pour les autres méthodes elles ont été expliquées par mes confrères plus haut :-)

    a +

  • signaler à un administrateur
    Commentaire de monoceros01 le 21/02/2006 19:03:06

    O_O... Ahem!...
    Si on reprend "l'objectif" de ce script on a :
    "Ayant besoin d'afficher des nouvelles de moins de 30 jours sur un site, voici le code que j'ai fait..."

    Personnellement, si j'ai besoin de faire ça et que mes nouvelles sont dans une base de données MySQL, je me contente de faire :
       SELECT nouvelles FROM tbl_nouvelles WHERE DATEDIFF(NOW(),date_col) <= 30 ORDER BY date_col DESC;

    Après, si je veux m'amuser à compter la différence en secondes entre deux dates.... Ben vous l'avez très bien dis :D

  • signaler à un administrateur
    Commentaire de Anthomicro le 21/02/2006 20:53:33

    si j'ai un truc mysql avec un champ INT je fais la même chose ou presque mais WHERE date>time()-30jours

  • signaler à un administrateur
    Commentaire de TheSin le 21/02/2006 22:13:12

    oui, effectivement lol
    ces méthodes sont quand meme plus simple et un peu plus rapide ...
    par contre, moi j'avais pas vu l'objectif, j'ai du le louper ....
    c'est pour ca que j'avais proposé une simple ligne ^^

  • signaler à un administrateur
    Commentaire de parraccourci le 24/01/2007 11:13:43

    Perso je préfère celui-ci que j'ai fait... on entre un debut et une fin en "secondes depuis l'ere unix" et il revoi le nombre de jours en tenant compte du fait que la différence déborde peut etre sur un jour supplementaire, contrairement a un autre exemple ci-dessus.

    function nbrJr($debut,$fin){
    $debutJournee = mktime(0,0,0,date("m",$debut),date("d",$debut),date("Y",$debut));
    $secAvtDeb = $debut-$debutJournee;
    $diff = $fin - $debut;
    $nbJr= intval($diff/(24*3600));
    $nbJr++;
    if( (($diff%(24*3600))+$secAvtDeb) > (24*3600) ) $nbJr++;
    return  $nbJr;
    }

Ajouter un commentaire

Pub



Appels d'offres

Recherche developpeur ...
Budget : 700€
SITE MARCHAND LOCATION...
Budget : 3 000€
SITE MARCHAND POUR HOTEL
Budget : 4 000€

CalendriCode

Août 2008
LMMJVSD
    123
45678910
11121314151617
18192021222324
25262728293031

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS