Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    18

    aggiungere n giorni alla data trovata sul database

    ciao ragazzi, ho questo (forse stupido) problema.

    dovrei aggiungere ad una data scaricata dal db di mysql n giorni.

    Inizialmente mi bastava stampare la data così com'è:

    $query="SELECT date_format(lineadate,'%d/%m/%Y') lineadate FROM prova WHERE linea='{$_POST['linea']}' AND nome='{$_POST['nomeli']}'";
    $lista=mysql_query($query);
    $row=mysql_fetch_array($lista);
    echo $row['lineadate'];

    e funziona tutto perfettamente fin qui. ma se io dovessi stampare una data che sarebbe" datadb + 50 giorni" come faccio?

    potreste aiutarmi?

    grazie

  2. #2
    La data nel database è in timestamp?
    Ce l'ho fatta! - ItalianPixel -

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    231
    usa mktime... prima scomponi la data che hai:

    list($d,$m,$y) = explode("/",$datadb);
    $newDate = date("d/m/Y", mktime(0,0,0,$m,$d+50,$y));

    comunque vedi qui:

    http://php.net/manual/en/function.mktime.php

    Ciao Max
    http://www.mdlwork.com

  4. #4
    Non è piu' semplice:

    Codice PHP:
     $query="SELECT (date_format(lineadate,'%d') AS lineadate, date_format(lineadate,'%m/%Y') AS lineadate2) FROM prova WHERE linea='{$_POST['linea']}' AND nome='{$_POST['nomeli']}'";
    $lista=mysql_query($query);
    $row=mysql_fetch_array($lista);
    echo 
    $row['lineadate']+50."/".$row['lineadate2']; 
    Social Network in costruzione.. Misto tra Twitter e Facebook.. Twitbook o facetter?

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    231
    Originariamente inviato da 0-c00l
    Non è piu' semplice:

    Codice PHP:
     $query="SELECT (date_format(lineadate,'%d') AS lineadate, date_format(lineadate,'%m/%Y') AS lineadate2) FROM prova WHERE linea='{$_POST['linea']}' AND nome='{$_POST['nomeli']}'";
    $lista=mysql_query($query);
    $row=mysql_fetch_array($lista);
    echo 
    $row['lineadate']+50."/".$row['lineadate2']; 
    mai provato ma non so se ti tiene il conto dei giorni 30/31 0 28 e 29 del mese di febbraio... Poi te lo fa il salto di anno? se aggiungo 50 giorni al 20 dicembre ti cambia anche l'anno?

    Io ho sempre usato mktime per non aver nessun tipo di problemi, poi non so...

    Ciao cioa MAX
    http://www.mdlwork.com

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    18
    Originariamente inviato da masdel1979
    usa mktime... prima scomponi la data che hai:

    list($d,$m,$y) = explode("/",$datadb);
    $newDate = date("d/m/Y", mktime(0,0,0,$m,$d+50,$y));

    comunque vedi qui:

    http://php.net/manual/en/function.mktime.php

    Ciao Max

    Infatti avevo gia provato quella soluzione ma non va. magari dimentico qualcosa!


    Codice PHP:
    $query="SELECT date_format(locodate,'%d/%m/%Y') locodate FROM prova WHERE loco='{$_POST['loco']}' AND nome='{$_POST['nomelc']}'"$lista=mysql_query($query); $row=mysql_fetch_array($lista); $dividi($d,$m,$Y)=explode("/",$row['locodate']); $datascadenza=date("d/m/Y"mktime(0,0,0,$m,$d+50,$Y)); echo $datascadenza
    fatto così mi dice:

    Fatal error: Can't use function return value in write context in C:

    ma non riesco a capire cosa intende!

    grazie della mano!

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    231
    Scusa ritorniamo a quello che diceva "portapipe"..

    lineadate che tipo di campo é?

    date
    datetime
    timestamp
    time

    o altro? Ciao MAX
    http://www.mdlwork.com

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2011
    Messaggi
    18
    adesso è un DATE ma posso tranquillamente cambiare il tipo di campo se è più comodo!

  9. #9
    codice:
    $date = strtotime(date("Y-m-d", strtotime($row['lineadate'])) . " +50 day");
    P.s. così avrai il timestamp della data con 50 giorni aggiunti, per tornare alla data "italiana"

    $dataitaliana = date("d-m-Y",$date);

  10. #10
    Bene, allora fai:
    Codice PHP:
    $data=strtotime($data_da_database);
    $datafinale=$data+(3600*24*50); 
    dove data è la conversione della data estratta dal database in timestamp, poi datafinale sarà la variabile data con aggiunti 50 giorni (3600 sono un'ora, per 24 ore = 1 giorno, per 50=50 giorni).
    Poi rinconverti il timestamp con la formattazione che più ti aggrada:
    Codice PHP:
    echo date('d.m.Y',$datafinale); 
    Se vuoi fare il lavoro fatto bene cambia il campo date in mysql con INT e ci salvi dentro il time() attuale (timestamp).
    Alla fine basterà saper fare i conti, invece di barcamenarsi tra mille funzioni delle date, non trovi?
    Ce l'ho fatta! - ItalianPixel -

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.