Le Famigerate Date del PHP.

IlDottore Pek Davide

Nuovo Utente
25 Lug 2012
15
0
0
Ciao a tutti,
sto realmente impazzendo dietro alle date in PHP, mi spiego meglio, ho trovato tutorial su come si scrivono le date e su come si fanno calendari, ma non ho trovato quello che mi serve, e se l'ho trovato non l'ho capito assolutamente, premetto che io faccio sito per hobby ad amici, e ho fatto L'ITI informatica, quindi sono una via di mezzo tra chi sa bene e chi non sa niente.
Allora, il mio problema è che non riesco a capire come gestire le scadenze, mi spiego meglio, ho un database con una colonna di data firma contratto, il mio amico vuole che dopo un anno (qualche giorno prima) lo avverta che quel contratto sta scadendo, ho provato ad aggiungere 1 nel formato date ed è comprensibilmente sbagliato, ho provato a trasformare tutto in interi, ed è una cosa improponibile, come fare ? come posso aggiungere un tot di tempo in un formato date ???

è molto importante xk sono bloccato, spero nell'aiuto di qualcuno,
saluti a tutti.





:book: BUONO SCRIPT:book:
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao,
se usi come tipo campo DATE puoi provare una query del genere:

PHP:
<?php
$query = "SELECT * FROM tabella WHERE dataScadenza < DATE_SUB(CURDATE(), INTERVAL 1 YEAR)";
?>

dovresti riuscire a estrarre tutte le date piu vecchie di un anno

non l'ho provata
 

IlDottore Pek Davide

Nuovo Utente
25 Lug 2012
15
0
0
Il problema, è che io devo inserire tempi precisi, non intervalli di tempo, una scadenza precisa dopo un tot tempo inserito dall'utente, e con preavviso, quindi quello script penso funzioni ma nn mi aiuta, grazie comunque .
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
se togli il segno di minore (<) e usi quello di uguaglianza (=) recuperi le date precise di un anno fa

cmq il mio consiglio è di provare delle query direttamente sul db fino a che non recuperi i dati che ti servono
 

sixdas

Utente Attivo
25 Giu 2012
70
0
6
Ciao, mi sono ritrovato nella tua identica situazione. La mia necessita era di avvisare il cliente via email della scadenze delle fatture mensilmente. Dopo varie prove sono arrivato alla soluzione, che al momento che viene inserito il documento faccio inserire sia la data di scadenza sia la data di avviso. Se anche tu inserisci tu i dati del contratto potrebbe funzionare, altrimenti se vuoi che il tutto avvenga in automatico, aspetta qualche altro consiglio. Mi iscrivo alla discussione, perchè interessa anche a me l'argomento.
 

IlDottore Pek Davide

Nuovo Utente
25 Lug 2012
15
0
0
e' incredibile, però che un problema così semplice, che col c++ o qualsiasi altro linguaggio si risolverebbe tranquillamente, è impossibile che non esista un modo decente di gestire queste date...
cmq il mio problema anche se faccio inserire la data di scadenza, è che gli deve mandare l'email qualche gg prima, quindi effettuo sempre operazioni con le date, che mi sembra di capire alla fine la cosa migliore da fare è usare il time, anche se si complica inutilmante il tutto...
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Io insisto con la mia

PHP:
<?php

$conn = mysql_connect("localhost", "root", "");
$db = mysql_select_db("database");

// recuperi gli account di 1 anno e 3 giorni fa (368 gg)
$query = "SELECT mail,dataAttivazione FROM tabella WHERE dataAttivazione = DATE_SUB(CURDATE(), INTERVAL 368 DAY)";
// la esegui
$result = mysql_query($query);
// cicli se ci sono risultati
while ($row = mysql_fetch_assoc($result)) {
    $mail = $row['mail'];
    $data = explode("-", $row['dataAttivazione']);
    $dataScadenza = $data[2] . "/" . $data[1] . "/" . date('Y');
    $oggetto = "Scadenza account";
    $body = "Avvisiamo che il " . $dataScadenza . " ti scade l'account";

    // invii la mail con phpmailer o altro
}
?>

ho scritto senza testare cmq l'idea si capisce

PS : formato dataAttivazione DATE ( YYYY-MM-GG )
 
Ultima modifica:

IlDottore Pek Davide

Nuovo Utente
25 Lug 2012
15
0
0
Grazie comunque della pazienza,
ma mi puoi spiegare quell'interval ??? nn l'ho trovato da nessuna parte, come funziona ???
e poi php capisce la scrittura 368 days ? xk facendo diversi tentativi ho notato che cmq il formato date, è un formato a parte che nn si piò comparare con interi ad esempio,
io avevo provato a scompattare la data in gg mm aaaa come quattro var intere, con i vari vincoli di integrità, tuttavia quando vado a prendere la data odierna non c'è verso compararla, o trasformarla comunque in 3 distinti numeri interi.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
nn l'ho trovato da nessuna parte, come funziona ???
http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html

in pratica la WHERE vuol dire
DATE_SUB -> togli
CURDATE -> data corrente
INTERVAL 368 DAY -> 368 giorni

Togli da oggi 368 giorni

e poi php capisce la scrittura 368 days
non è php che deve capire ma MYSQL e lo capisce benissimo
puoi usare:
INTERVAL 1 DAY -> un giorno
INTERVAL 1MONTH -> un mese
INTERVAL 1 YEAR -> un anno

Questo vale per il formato DATE o DATETIME (credo) o TIMESTAMP (credo) credo perche non ho provato

Se vuoi usare numeri interi il discorso cambia e dovrai affidare il lavoro a PHP
Cmq lavorare sulle date con php è come lavorarci con qualsiasi altro linguaggio
 

IlDottore Pek Davide

Nuovo Utente
25 Lug 2012
15
0
0
funziona,
ma ho dovuto lasciare minore, xk con = da dei problemi con le ore etc..
ma non capisco come mai ultimamente non mi va niente, puoi controllare, visto che ci intendi cosa c'è di sbagliato in questo : (è il form per aggiungere i dati )

PHP:
<form method="post" action ="#">
Inserisci qui i dati Contrattuali: <br>
Nome Azienda : <input type="text" name="nomeazienda" value=""/><br>
Referente    : <input type="text" name="referente" value=""/><br>
Indirizzo    : <input type="text" name="indirizzo" value=""/><br>
Numero tel.  : <input type="text" name="numero" value=""/><br>
P.Iva        : <input type="text" name="piva" value=""/><br>
Data         : <input type="date" name="data" value=""/><br><br>
<input type="submit" name="submit">
</form>
 <?php
 if (isset($_post['submit'])) {
 @include ("config.php");
 conn ();
 $nomeazienda = mysql_real_escape_string($_POST['nomeazienda']);
 $referente = mysql_real_escape_string($_POST['referente']);
 $indirizzo = mysql_real_escape_string($_POST['indirizzo']);
 $numerot = mysql_real_escape_string($_POST['numero']);
 $piva = mysql_real_escape_string($_POST['piva']);
 $date = $_POST['data'] ;
        
 
 $sql = "INSERT INTO  `my_emanuelecipriani`.`contratti` (
'id' ,
`nomeazienda` ,
`referente` ,
`indirizzo` ,
`ntelefono` ,
`p.iva` ,
`data`
)
VALUES (
'$nomeazienda',  '$referente',  '$indirizzo',  '$numerot',  '$piva',  ' $date'
);
";
				$result = mysql_query($sql);
 
      if (!$result) {
		die("Errore nella query $query: " . mysql_error());
	}
 
                    } ;?>
grazie 1000 comunque..
 
Ultima modifica di un moderatore:

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Nuovo problema = Nuova discussione

togli 'id' , dalla query
 

IlDottore Pek Davide

Nuovo Utente
25 Lug 2012
15
0
0
Pardo'n

tolto, il problema rimane, cmq non ho fatto una nuova discussione perchè almeno lo vedevi te, che te ne intendi, poi nn volevo assillare il forum :D
cmq il problema è che si connette ma non inserisce i dati nella tabella.
 
Discussioni simili
Autore Titolo Forum Risposte Data
T Query con date MS Access 1
MarcoGrazia Calcolo fra due date con esclusione delle feste PHP 7
S Differenza date record successivi MS Access 7
E Format Date PHP 37
napuleone Con le date il codice da di matto o forse non è così Javascript 6
napuleone Con le date mi da di matto o forse è proprio così jQuery 1
elpirata Impedire inserimento data di oggi e date passate jQuery 39
A attributo "min" per input gestione date PHP 8
Alex_70 Javascript date color Javascript 3
FabioJ Formattazione date openoffice calc Linux e Software 0
O query con date in formato stringa PHP 3
F Creare un set di date a seconda del frazionamento scelto da inserire in MySQL PHP 6
S aggiungere colonna date in una tabella già esistente Database 0
P [PHP] Input Type="date" non va correttamente con Apple PHP 2
A [Java]Date diminuite di un giorno su db MySQL Java 0
V [MySQL] problema query con date su server MySQL 5
maxnegri [PHP]Funzione di calcolo prezzo di una camera in un range di date PHP 62
maxnegri Conoscere giorni della settimana fra due date con php PHP 2
S [HTML] Problema <input type="date"> HTML e CSS 0
Daniele_Carrara [Javascript] Modifica input date Javascript 5
Licantropo [MySQL] Cambiare le date MySQL 4
P [PHP] Calcolo prezzi camera in range di date diverse PHP 11
M [PHP] Convertire date da americana a italiana direttamente nel db PHP 6
trattorino [PHP] prelevare minuti da date confrontate PHP 2
Emix [PHP] Differenza Date + Ore PHP 3
MarcoGrazia campo con autocompletamento a formato multiplo (nomi/date) jQuery 3
diego66 [Javascript] Calcolare giorni lavorativi comprese tra due date Javascript 0
napuleone [PHP] Ho la settimana e l'anno cerco le date PHP 4
gandalf1959 Selezionare un intervallo tra due date, php e mysql PHP 2
valvasori [PHP] Proble di date PHP 14
M [PHP] Date(time) PHP 2
filippino Chiavi a corrispondenza inversa per i risultati organici? (Era: come NON farsi trovare con date chia SEO e Posizionamento 4
S funzioni per calcoli sulle date PHP 4
G Tabella con date PHP 9
felino [MySQL][phpMyAdmin] Convertire colonna da VARCHAR a DATE MySQL 3
M Limit DATE PHP 6
V Date e operazioni aritmetiche PHP 13
A Problema con "explode" su campo date PHP 9
V date mysql MySQL 0
V Reperire le date della settimana del calendario jQuery 1
M Otttimizazione date calendario prenotazioni PHP 0
elpirata Query di ricerca su campo date MySQL 1
L Conversione date ed estrazione PHP 0
J Confronto Date PHP - MySQL PHP 1
M Problema con date importate da file txt PHP 13
C Comparazione date in italiano PHP 1
M BETWEEN tra due date MySQL 0
M Calcolo giorni lavorativi tra due date (escluse le feste comandate) PHP 6
S Problema conteggio intervallo date PHP 2
E calcolo date feriali Database 6

Discussioni simili