Format Date

ma puoi benissimo fare anche
Codice:
$data_incarico = "21/02/21";
$data_incarico = str_replace('/', '-', $data_incarico);
$data_incarico_strtime =strtotime($data_incarico);
$test = date("d-m-y", $data_incarico_strtime);
echo $test;
 
aggiungo inoltre che se no devi usare l'anno per esterso "2021" ti basta solo una riga di codice quella che sotistuisce il "/" con il "-"
 
Ah dimenticavo, per risolvere questo fai cosi:
PHP:
$parte=substr($data_incarico,0,6);
$anno = substr($data_incarico,6,2);
echo "Anno ".$anno; //output: 21
echo "<br>";
$var = date_create_from_format('y',$anno);
echo $parte.$var->format('d-m-Y');
Tommy questa procedura Mi restituisce : output:17-02-20-03-2021, è come se prendesse i primi 6 caratteri $parte e ok... e poi accoda la data di oggi...
 
ma puoi benissimo fare anche
Codice:
$data_incarico = "21/02/21";
$data_incarico = str_replace('/', '-', $data_incarico);
$data_incarico_strtime =strtotime($data_incarico);
$test = date("d-m-y", $data_incarico_strtime);
echo $test;
Illiterate... questo invece restituisce 21-02-17 invece la data di partenza è 17/02/2021.
Sul discorso del numero di caratteri o del formato, io non ho preferenze, ma mi sembra di aver capito che sono con formato gg-mm-aaaa non avrò problemi in futuro per eventuali filtri e/o calcoli... Giusto?
Al momento voglio fare un semplice calcolo per capire quanti giorni sono passati da una data $row->data_sca ad oggi...pensavo fosse più semplice... scusatemi...

E
 
ho appena fatto questo test con output 17-02-2021 quindi mi pare che funzioni correttamente
Codice:
<?php
$data_incarico = "17/02/2021";
$data_incarico = str_replace('/', '-', $data_incarico);
$data_incarico_strtime =strtotime($data_incarico);
$test = date("d-m-Y", $data_incarico_strtime);
echo $test;
?>
 
ho appena fatto questo test con output 17-02-2021 quindi mi pare che funzioni correttamente
Codice:
<?php
$data_incarico = "17/02/2021";
$data_incarico = str_replace('/', '-', $data_incarico);
$data_incarico_strtime =strtotime($data_incarico);
$test = date("d-m-Y", $data_incarico_strtime);
echo $test;
?>
Il problema è che la mia data_incarico è 17/12/21 e non 17/12/2021...
 
Codice:
<?php
$data_incarico = "17/12/21 ";
$data_incarico = str_replace('/21', '-2021', $data_incarico);
$data_incarico = str_replace('/', '-', $data_incarico);
$data_incarico_strtime =strtotime($data_incarico);
$test = date("d-m-Y", $data_incarico_strtime);
echo $test;
?>
 
Codice:
$data_incarico = "17/12/21 ";
$data_incarico = str_replace('/21', '-2021', $data_incarico);
$data_incarico = str_replace('/', '-', $data_incarico);
echo $data_incarico;
 
Tra poco provo e vi aggiorno... La tua procedura Illiterate funzionerebbe se tutte le date fossero con anno 2021...ma ho tante variabili...per esempio le date di nascita possono essere anche precedenti al 2000 (infatti devo testare la procedura di Tommy come si comporta con le date pre "00"... Ma a prescindere...GRAZIE MILLE PER L'AIUTO!!!!
 
Vi aggiorno... la procedura di Tommy funziona perfettamente anche con anni precedenti al 2000 (provato con 1998). Quindi ora ho 2 date formattate gg-mm-aaaa.
Ho provato a fare la differenza in giorni ma non va... potrebbe essere un problema di formattazione? Vi faccio vedere il codice completo:
PHP:
$data_attuale =date("d-m-Y");
$data_incarico = str_replace('/', '-', $row->data_sca);
$parte = substr($data_incarico,0,6);
$anno = substr($data_incarico,6,2);
$var = date_create_from_format('y',$anno);
$data_completa= $parte.$var->format('Y');
$intervallo = date_diff($data_attuale, $data_completa);
echo $intervallo->format('%a days');

in un vecchio esempio che avevo provato questa procedura funzionava perfettamente, mi restituiva "2 giorni"... ve lo mostro...

PHP:
$data1 = date_create('2017-04-13');
$data2 = date_create('2017-04-15');
$interval = date_diff($data1, $data2);
echo $interval->format('%a giorni');

Avete qualche idea?
 
Ho provato anche ad utilizzare il formato americano aaaa-mm-gg ma niente... (non so se è giusto costruire così il formato americano per $data_completa)

PHP:
$data_attuale =date("Y-m-d");
echo $data_attuale;
echo "<br>";
$data_incarico = str_replace('/', '-', $row->data_sca);
$gg = substr($data_incarico,0,2);
$mm = substr($data_incarico,3,2);
$anno = substr($data_incarico,6,2);
$anno = date_create_from_format('y',$anno);
$data_completa= $anno->format('Y')."-".$mm."-".$gg;
echo $data_completa;
echo "<br>";
$intervallo = date_diff($data_completa, $data_attuale);
echo $intervallo->format('%a days');
 
Codice:
$data_attuale =date("Y-m-d");
echo $data_attuale;
echo "<br>";
$data_incarico = "17-05-90";
$gg = substr($data_incarico,0,2);
$mm = substr($data_incarico,3,2);
$anno = substr($data_incarico,6,2);
$anno = date_create_from_format('y',$anno);
$data_completa= $anno->format('Y')."-".$mm."-".$gg;
echo $data_completa;
echo "<br>";

$data_attuale=date_create("$data_attuale");
$data_completa=date_create("$data_completa");

$intervallo = date_diff($data_completa, $data_attuale);
echo $intervallo->format('%a days');
 
Codice:
$data_attuale =date("Y-m-d");
echo $data_attuale;
echo "<br>";
$data_incarico = "17-05-90";
$gg = substr($data_incarico,0,2);
$mm = substr($data_incarico,3,2);
$anno = substr($data_incarico,6,2);
$anno = date_create_from_format('y',$anno);
$data_completa= $anno->format('Y')."-".$mm."-".$gg;
echo $data_completa;
echo "<br>";

$data_attuale=date_create("$data_attuale");
$data_completa=date_create("$data_completa");

$intervallo = date_diff($data_completa, $data_attuale);
echo $intervallo->format('%a days');
SPETTACOLO.... Grazie mille...

Funziona perfettamente....
 
Si ho notato...siete stati davvero troppo gentili... GRANDE FORUM... GRANDI PERSONE!!!!

Grazie
E
 
Ci sto per rinunciare...

PHP:
$data_attuale =date("d-m-Y");
echo $data_attuale; //output: 20-03-2021
echo "<br>";
$data_incarico = str_replace('/', '-', $row->data_sca);
echo "data_incarico ".$data_incarico; //output: 17-02-21
echo "<br>";
$anno = substr($data_incarico,6,2);
echo "Anno ".$anno; //output: 21
echo "<br>";
$var = date_create_from_format('Y',$anno);
echo $var->format('d-m-Y'); //output:20-03-0021

Il $var ha la data di oggi e non in contenuto del Db e soprattutto con anno 0021...
Sto nel pallone... Scusatemi ho codice su codice e prove su prove...

E

Secondo me ti conviene dare una letta alla documentazione per sapere di preciso cosa fanno (e come usare) i metodi che ti servono.
 

Discussioni simili