ciao, un aiuto
sto cercando di fare una differenza tra due date per vedere se data2 è maggiore di data1, sto usando mktime per costruire le due date e vederne la differenza ma sto cannando qualcosa; è la funzione giusta o ne devo usare altre?
grazie
ciao, un aiuto
sto cercando di fare una differenza tra due date per vedere se data2 è maggiore di data1, sto usando mktime per costruire le due date e vederne la differenza ma sto cannando qualcosa; è la funzione giusta o ne devo usare altre?
grazie
tempo fai trovai come open source la funzione DateDiff dell'ASP convertita in PHP per scopi didattici![]()
Codice PHP:function datediff($interval, $date1, $date2) {
$seconds = $date2 - $date1;
switch ($interval) {
case "y": // years
list($year1, $month1, $day1) = split('-', date('Y-m-d', $date1));
list($year2, $month2, $day2) = split('-', date('Y-m-d', $date2));
$time1 = (date('H',$date1)*3600) + (date('i',$date1)*60) + (date('s',$date1));
$time2 = (date('H',$date2)*3600) + (date('i',$date2)*60) + (date('s',$date2));
$diff = $year2 - $year1;
if($month1 > $month2) {
$diff -= 1;
} elseif($month1 == $month2) {
if($day1 > $day2) {
$diff -= 1;
} elseif($day1 == $day2) {
if($time1 > $time2) {
$diff -= 1;
}
}
}
break;
case "m": // months
list($year1, $month1, $day1) = split('-', date('Y-m-d', $date1));
list($year2, $month2, $day2) = split('-', date('Y-m-d', $date2));
$time1 = (date('H',$date1)*3600) + (date('i',$date1)*60) + (date('s',$date1));
$time2 = (date('H',$date2)*3600) + (date('i',$date2)*60) + (date('s',$date2));
$diff = ($year2 * 12 + $month2) - ($year1 * 12 + $month1);
if($day1 > $day2) {
$diff -= 1;
} elseif($day1 == $day2) {
if($time1 > $time2) {
$diff -= 1;
}
}
break;
case "w": // weeks
// Only simple seconds calculation needed from here on
$diff = floor($seconds / 604800);
break;
case "d": // days
$diff = floor($seconds / 86400);
break;
case "h": // hours
$diff = floor($seconds / 3600);
break;
case "i": // minutes
$diff = floor($seconds / 60);
break;
case "s": // seconds
$diff = $seconds;
break;
}
return $diff;
}
grazie, con ASP / VBSCRIPT m'ero abituato bene
io ne avevo fatta una stupidina per un tizio.. è giù nella firma.. ma quella proposta è molto più completa.. naturalmente![]()
..::Luca::..
» "se nn riesci a venirene a capo.. usa il tasto INVIO" © 2005 Luke83
» "letta la documentazione, spazio all'immaginazione.." © 2006 Luke83
[frasi random] - [Lucopedia] - [laFetta]
girovagando ho trovato anche questa:
function date_diff($dat1,$dat2) {
/* Dat1 and Dat2 passed as "YYYY-MM-DD" */
$tmp_dat1 = mktime(0,0,0,substr($dat1,5,2),substr($dat1,8,2),s ubstr($dat1,0,4));
$tmp_dat2 = mktime(0,0,0,substr($dat2,5,2),substr($dat2,8,2),s ubstr($dat2,0,4));
$yeardiff = date('Y',$tmp_dat1)-date('Y',$tmp_dat2);
/* a leap year in every 4 years and the days-difference */
$diff = date('z',$tmp_dat1)-date('z',$tmp_dat2) + floor($yeardiff /4)*1461;
/* remainder */
for ($yeardiff = $yeardiff % 4; $yeardiff>0; $yeardiff--) {
$diff += 365 + date('L',mktime(0,0,0,1,1,intval(substr((($tmp_dat 1>$tmp_dat2) ? $dat1 : $dat2),0,4))-$yeardiff+1));
}
return $diff;
}
Php allora ti vizia.Originariamente inviato da fede_00
grazie, con ASP / VBSCRIPT m'ero abituato bene
codice:$data1 = mktime(0, 0, 0, $mese1, $giorno1, $anno1); $data2 = mktime(0, 0, 0, $mese2, $giorno2, $anno2); if($data2 > $data1) echo "$data2 e' maggiore di $data1"; elseif( $data2 < $data1) echo "$data2 e' minore di $data1"; else echo "Le due date sono uguali";
![]()
Il silenzio è spesso la cosa migliore. Pensa ... è gratis.
grazie a tutti
con PHP tiro qualche noceper trovare la conversione delle varie funzioni o oggetti però mi piace molto di + di ASP (ammesso che ASP lo si possa considerare un linguaggio)