Visualizzazione risultati 1 fino 4 di 4

Discussione: Differenze tra date in stile facebook

  1. #1
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,232

    Predefinito Differenze tra date in stile facebook

    Salve,
    ho trovato questo codice in rete:

    Codice PHP:
    <?php

    // Calcola il tempo trascorso da una data stile facebook

    function calcolaTempoTrascorso($dataMessaggio)
    {
    $differenza = date_diff("Min", date ("Y-m-d-H-i", strtotime ($dataMessaggio)), date("Y-m-d-H-i"));
    $stringaEsatta = ottieniStringaTempoTrascorso($differenza, $dataMessaggio);
    return
    $stringaEsatta;
    }

    function
    ottieniStringaTempoTrascorso($differenza, $dataMess)
    {
    switch (
    $differenza)
    {
    case (
    $differenza>0 && $differenza<60) :

    if(
    $differenza==0 || $differenza==1)
    {
    $opzione = "1 minuto fa.";
    }
    else
    {
    $opzione = "".$differenza." minuti fa.";
    }

    break;

    case (
    $differenza>60 && $differenza<1440) :
    $oreFa = floor($differenza/60);

    if(
    $oreFa==1)
    {
    $stringaOre = "ora";
    }
    else
    {
    $stringaOre = "ore";
    }

    $opzione = "circa ".floor($differenza/60)." ".$stringaOre." fa.";
    break;

    case (
    $differenza>1440 && $differenza<10080) :
    $giorniFa = floor($differenza/1440);

    $giornoSett = date("N", strtotime($dataMess));

    switch (
    $giornoSett)
    {
    case (
    1) :
    $opzione = "lunedi.";
    break;

    case (
    2) :
    $opzione = "martedi.";
    break;

    break;
    case (
    3) :
    $opzione = "mercoledi.";
    break;

    case (
    4) :
    $opzione = "giovedi.";
    break;

    case (
    5) :
    $opzione = "venerdi.";
    break;

    case (
    6) :
    $opzione = "sabato.";
    break;

    case (
    7) :
    $opzione = "domenica.";
    break;
    }

    break;

    case (
    $differenza>10080 && $differenza<44640) :
    $opzione = "oltre una settimana fa.";
    break;

    case (
    $differenza>44640) :
    $opzione = "oltre un mese fa.";
    break;
    }

    return
    $opzione;
    }

    //717017400
    echo calcolaTempoTrascorso("1992/09/20");
    Teoricamente dovrebbe visualizzarmi quanto tempo è passato da una data in stile facebook ma praticamente ricevo questo errore:

    Warning: date_diff() expects parameter 1 to be DateTime, string given in
    Dov'è che sbaglio?
    Apprezzi l'aiuto? Offrimi un caffè!

  2. #2
    L'avatar di alemoppo
    alemoppo non è connesso Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,672

    Predefinito

    Perché come parametro gli passi la stringa "Min"?

    Ciao!

  3. #3
    Guest

    Predefinito

    date_diff() vuole due parametri di tipo DateTime (ceh solo le date di cui vuoi trovare la differenza).
    Tu usi tre parametri, di cui il primo ("Min") è di tipo String, e non richiesto dalla funzione.

    ;)

  4. #4
    L'avatar di miki92
    miki92 non è connesso AlterGuru 2500
    Data registrazione
    21-04-2007
    Residenza
    Procida (NA)
    Messaggi
    4,232

    Predefinito

    Non so che dirvi...come ho detto ho scopiazzato il codice dalla rete perchè mi serve al più presto ed ho varie cose da fare quindi non posso applicarmi troppo nel crearlo.

    La funzione originale è:
    Codice PHP:
    function calcolaTempoTrascorso($dataMessaggio)
    {
    $differenza = datediff("Min", date ("Y-m-d-H-i", strtotime ($dataMessaggio)), date("Y-m-d-H-i"));
    $stringaEsatta = ottieniStringaTempoTrascorso($differenza, $dataMessaggio);
    return
    $stringaEsatta;
    }
    Però non funzionando e pensando si trattasse di un errore l'ho modificata in date_diff()

    Il link da cui ho scopiazzato il codice è questo.
    Apprezzi l'aiuto? Offrimi un caffè!

Regole di scrittura

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