Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 16
  1. #1
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,514

    calcolo di una data a ritroso

    Salve a tutti
    aggiunsi questo calcolo ad una mia pagina, se non ricordo male mi tirava fuori la data di 1 anno e mezzo prima (serviva per mostrare le recensioni inserite fino ad 1 anno e mezzo da oggi), in realtà non ricordo se è un anno e mezzo o 2 anche se a variabile la chiamai proprio $un_anno_e_mezzo

    Il codice che aggiunsi è

    Codice PHP:
    $timestamp time() - ( 24 30 24 60 60 );$un_anno_e_mezzo date('Y-m-d',$timestamp); 
    Adesso avrei necessità di modificare questa data e portarla almeno a 2 anni.

    Come potrei fare il calcolo esatto da impostare in $timestamp?
    Ho visto alcuni convertitori online ma non so il nome del formato da indicare

    Sapreste aiutarmi?
    Grazie

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    11,894
    Il calcolo esatto è ricavare i secondi che ci sono nel lasso temporale che ti interessa e sottrarli a time().

    Quanti secondi ci sono in 2 anni?

  3. #3
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,514
    dovrebbero essere 63158400 secondi, pero' non ho ricordo da dove tirai fuori ( 24 * 30 * 24 * 60 * 60 )

  4. #4
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    11,894
    L'hai preso da un ragionamento così
    1 minuto = 60 secondi
    1 ora = 60 minuti
    1 giorno = 24 ore
    1 mese = 30 giorni
    2 anni = 24 mesi

    mai io arrivato ai giorni farei
    1 anno = 365 giorni
    che è più accurato che considerare tutti i mesi di 30 giorni, quindi

    60 x 60 x 24 x 365 x 2 = secondi in 2 anni

  5. #5
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,514
    quindi l'ordine è indifferente?
    Cioe' posso scrivere sia


    $timestamp = time() - ( 60 * 60 * 24 * 365 * 2 );

    sia

    $timestamp = time() - ( 365 * 60 * 24 * 60 * 2 );

    e via dicendo? L'importante che il calcolo mi porti a quel numero di secondi?

  6. #6
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    11,894
    E' una moltiplicazione, è matematica, non c'entra con la programmazione.

  7. #7
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,514
    si quello si, quindi in teoria potrei anche scrivere direttamente

    $timestamp = time() - ( 31536000 * 2 );

    Dove il primo valore sono i secondi in 1 anno ed il secondo sono il numero di anni da calcolare?

  8. #8
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    11,894
    Certo, ma di norma si scrive la moltiplicazione per esteso per capire di che cosa si tratta e come è stato fatto il conto.

    vedendo solo 31536000 saresti in grado di capire se hai usato 1 anno = 365 giorni oppure se hai fatto il calcolo considerando i mesi da 30?

  9. #9
    Puoi fare tutto molto più semplicemente con una riga sola di codice:
    Codice PHP:
    $dueAnniFa date("Y-m-d"strtotime(date("Y-m-d")." -2 years")); 

  10. #10
    Utente di HTML.it L'avatar di allin81
    Registrato dal
    Mar 2011
    Messaggi
    1,514
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    Certo, ma di norma si scrive la moltiplicazione per esteso per capire di che cosa si tratta e come è stato fatto il conto.

    vedendo solo 31536000 saresti in grado di capire se hai usato 1 anno = 365 giorni oppure se hai fatto il calcolo considerando i mesi da 30?
    Si è vero, pero' adesso, sapendo che devo esportare le recensioni di 2 anni, posso fare il calcolo che dicevo, ho provato e funziona, poi logicamente, nel caso in cui devo metterlo in una pagina come avevo fino ad ora a quel punto lo scrivo nell'altro modo aggiungendo un commento cosi' non dimentico

    Tutto chiarissimo, grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2020 vBulletin Solutions, Inc. All rights reserved.