Visualizzazione risultati 1 fino 9 di 9

Discussione: [php] funzione differenza fra date

  1. #1
    Guest

    Predefinito [php] funzione differenza fra date

    Ciao a tutti...
    dovrei fare una funzione che prendendo una data dal db e sapendo la data odierna,
    faccia la differenza....
    Tipo come fa facebook...
    1)se la differenza e uguale o minore di 60 sec.
    vorrei che scrivesse tipo
    25 sec.
    2)se la differenza e maggiore di 60 o uguale o minore di 3600 sec.
    vorrei che scrivesse tipo
    25 minuti.
    3)se la differenza e maggiore di 3600 sec.
    vorrei che scrivesse tipo
    3 ore
    4)se la differenza e 86400 sec
    vorrei che scrivesse la data invece...

    sapete darmi una mano...

  2. #2
    L'avatar di foreach
    foreach non è connesso Altervistiano Junior
    Data registrazione
    11-06-2008
    Residenza
    3 metri sotto terra
    Messaggi
    501

    Predefinito

    Allora prima di tutto mostrami il codice php dello script che usi per recuperare le 2 date da confrontare e ti aggiungo il tool che hai chiesto...







    foreach
    Codice PHP:
    foreach($vettore as $chiave => $valore) {
    echo 
    "Ciao";


  3. #3
    L'avatar di dreadnaut
    dreadnaut è connesso ora Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,269

    Predefinito

    Trovi un sacco di esempi cercando relative date.

  4. #4
    Guest

    Predefinito

    certo..
    Codice PHP:
    function DifferenzaData($data){
    $data_oggi = time();
    }
    DifferenzaData($rigo['data']);
    le date nel db le ho salvate sotto forma di numero tipo 21221521....

  5. #5
    L'avatar di foreach
    foreach non è connesso Altervistiano Junior
    Data registrazione
    11-06-2008
    Residenza
    3 metri sotto terra
    Messaggi
    501

    Predefinito

    Perfetto allora mostrami lo script completo che usi per estrarre le 2 date da confrontare (quella del database e time()) perché poi ci aggiungo il ciclo if e funziona




    foreach
    Codice PHP:
    foreach($vettore as $chiave => $valore) {
    echo 
    "Ciao";


  6. #6
    Guest

    Predefinito

    scusa non ho capito bene cosa ti serve....^^
    $rigo['data'] e la data presa dal db
    $data_oggi = time(); e la data odierna

  7. #7
    L'avatar di foreach
    foreach non è connesso Altervistiano Junior
    Data registrazione
    11-06-2008
    Residenza
    3 metri sotto terra
    Messaggi
    501

    Predefinito

    Va bene eccolo qui:
    Codice PHP:
    $data1 = $rigo['data'];
    $data2 = time();

    $diff = $data2-$data1;

    if(
    $diff < 60) {
    $str = $diff." secondi fa";
    } else if(
    $diff >= 60 && $diff < 3600) {
    $min = floor($diff/60);
    $str = $min." minuti fa";
    } else if(
    $diff >= 3600 && $diff < 86400) {
    $ore = floor($diff/3600);
    $str = $ore." ore fa";
    } else if(
    $diff >= 86400) {
    $str = date('tuo formato', $data1);
    }


    echo
    $str;
    Non l'ho provato, ma dovrebbe andare...





    foreach
    Codice PHP:
    foreach($vettore as $chiave => $valore) {
    echo 
    "Ciao";


  8. #8
    Guest

    Predefinito

    non sta funzionando
    Codice PHP:
    <?php
    function DifferenzaData($data){
    $data_oggi = time();
    $diff = ($data_oggi-$data);

    if(
    $diff < 60){
    $str = $diff." secondi fa";
    }else if(
    $diff >= 60 && $diff < 3600){
    $min = floor($diff/60);
    $str = $min." minuti fa";
    }else if(
    $diff >= 3600 && $diff < 86400){
    $ore = floor($diff/3600);
    $str = $ore." ore fa";
    }else if(
    $diff >= 86400){
    $str = date('d/m/Y H:i', $data);
    }
    return
    $str;
    }
    ?>
    e stampo cosi
    Codice PHP:
    Data: <?php echo DifferenzaData($rigo['data']); ?>

  9. #9
    Guest

    Predefinito

    Codice PHP:
    <?php
    function DifferenzaData($data){
    $data_oggi = time();
    $diff = ($data_oggi-$data);

    if(
    $diff < 60){
    $str = $diff." secondi fa";
    }else if(
    $diff >= 60 && $diff < 3600){
    $min = floor($diff/60);
    $str = $min." minuti fa";
    }else if(
    $diff >= 3600 && $diff < 86400){
    $ore = floor($diff/3600);
    $str = $ore." ore fa";
    }else if(
    $diff >= 86400){
    $str = date('d/m/Y H:i', $data);
    }
    return
    $str;
    }

    ?>

    Data: <?php echo DifferenzaData(1277660961); ?>
    A me così funziona (il numero che ho scritto come argomento é solo una data che ho fatto per testare, comunque il problema credo sia che nel codice non c'é la query per prelevare la data, ru hai solo scritto $rigo['data']

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •