Visualizzazione dei risultati da 1 a 8 su 8

Discussione: Problema script data

  1. #1
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080

    Problema script data

    Devo aggiungere un certo numero di mesi ad una data che è in un db mysql in formato 2016-08-31
    Non mi interessa cambiare il formato perchè tanto la visualizzazione della data non viene fatta (o meglio la faccio solo per fare una verifica io)

    Sto usando questo banale script che in questo modo funziona
    Codice PHP:
    echo date('d/m/Y'strtotime($aggiornamese)); 
    Ovviamente $aggiornamese è il numero di mesi da aggiungere .

    Se però vado a sostituire 'd/m/Y' con la mia variabile $scadenza in questo modo
    Codice PHP:
    echo date($scadenzastrtotime($aggiornamese)); 
    Non ricevo errori, ma la data che viene stampanta è quella di partenza ossia 2016-08-31
    Ho fatto una stampa dei valori di partenza ma sembra tutto corretto:

    variabile scadenza: 2016-08-31 - variabile aggiornamese: +12 months
    data ottenuta: 2016-08-31

    Suppongo sia un errore di sintassi.
    Grazie a chi mi aiuterà a risolvere l'arcano.

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Perdonami, 'd/m/Y' e '2016-08-31' per te sono la stessa cosa?
    Hai letto la documentazione sulla funzione date()? Se non lo hai fatto leggila.
    Il primo parametro deve essere il FORMATO della data, non una data.

  3. #3
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080
    Ops... mi sono persa in un bicchiere d'acqua!

  4. #4
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080
    Ancora però qualcosa non mi quadra

    Codice PHP:
         $array explode("-"$scadenza); 
         
    $scadenza_ok $array[2]."/".$array[1]."/".$array[0];   
         echo 
    "scadenza: ".$scadenza." - scadenzaok: ".$scadenza_ok." - aggiornamese: ".$aggiornamese."<br>";
         echo 
    date($scadenza_okstrtotime($aggiornamese)); 
    Mi da questo output:

    scadenza: 2016-08-31 - scadenzaok: 31/08/2016 - aggiornamese: +3 months
    31/08/2016

    Eppure ora il formato è corretto!

  5. #5
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Per "formato" si intende il modo in cui vuoi formattata la data in output.
    Leggi la documentazione.

    date() accetta 2 parametri, il primo è obbligatorio ed è il FORMATO, il secondo, opzionale è un timestamp da cui ricavare la data da dare in output.

    La data è l'OUTPUT della funzione date(), tu come primo parametro devi dirgli come la vuoi formattata (d/m/Y, d/M/Y, j/n/y... ecc), non gli devi dare una data già valida.
    Ultima modifica di Alhazred; 03-08-2016 a 16:45

  6. #6
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080
    Acc allora non fa per me! La documentazione tento di leggerla ma hem... non è così semplice.

    Sto provando con strtotime e nemmeno qui ho il risultato voluto!

    Per la precisone vorrei che se dico di aggiungere un mese a 15 agosto il risultato fosse 15 settembre, per il 31 agosto il risultato sarebbe il 30 settembre, mentre invece se al 31 agosto aggiungo un mese il risultato è il 1 ottobre!

    $date = strtotime($date);
    $final = date("Y-m-d", strtotime("+1 month", $date));
    echo $final;

  7. #7
    Utente di HTML.it L'avatar di Sonikag
    Registrato dal
    Mar 2004
    Messaggi
    2,080
    Alla fine ho risolto impostando forzando la data al primo del mese e poi aggiungendo i mesi! Alla fine mi interessava che la scadenza fosse ottobree (non importa se il primo o il trentuno).

  8. #8
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    il manuale...


    Codice PHP:
    $date '2016-08-31';
    $final date("Y-m-d"strtotime($date." +1 month")); 

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 © 2025 vBulletin Solutions, Inc. All rights reserved.