Scripts
Countdown
Een snippet waarbij je het aantal dagen, uren, minuten en seconden krijgt vanaf/tot een bepaalde datum. Bijv: Aftellen vanaf '1 january 2011' naar '1 january 2013' levert '731 dagen' (schrikkeljaar) op. Aftellen vanaf '1 january 2011 13:45' naar '1 january 2013' levert '730 dagen, 10 uren en 15 minuten' op. Het script houdt rekening met schrikkeljaren, maakt de string op (komma's, en), en is eventueel ook engels te krijgen (alle variabelen in het engels zetten). Testomgeving: Mac OS X Lion 10.7 MAMP 2.0.5 Tijdzone Europe/Berlin (GMT+0100)
countdown.php
<?php
// Defenition of countdown destination and begin
// Format: timestamp or English textual datetime description
$countdownto = '1 january 2013';
$countdownfrom = '1 january 2011 13:45';
// Defenition of timeunits
$days = 'dagen';
$day = 'dag';
$hours = 'uren';
$hour = 'uur';
$minutes = 'minuten';
$minute = 'minuut';
$seconds = 'seconden';
$second = 'seconde';
// Defenition of 'and'
$and = 'en';
// Defenition of value timeunits
// Format: numeric in seconds
$dsecond = 1;
$dminute = $dsecond * 60;
$dhour = $dsecond * 60 * 60;
$dday = $dsecond * 60 * 60 * 24;
// Seconds to destination
if(!is_numeric($countdownto)) {
$countdownto = strtotime($countdownto);
}
if(!is_numeric($countdownfrom)) {
$countdownfrom = strtotime($countdownfrom);
}
$countdown = $countdownto - $countdownfrom;
// Calculate days
$cdays = 0;
while(true) {
if(($countdown - $dday) > -1) {
$cdays++;
$countdown = $countdown - $dday;
} else {
break;
}
}
// Calculate hours
$chours = 0;
while(true) {
if(($countdown - $dhour) > -1) {
$chours++;
$countdown = $countdown - $dhour;
} else {
break;
}
}
// Calculate minutes
$cminutes = 0;
while(true) {
if(($countdown - $dminute) > -1) {
$cminutes++;
$countdown = $countdown - $dminute;
} else {
break;
}
}
// Calculate seconds
$cseconds = 0;
while(true) {
if(($countdown - $dsecond) > -1) {
$cseconds++;
$countdown = $countdown - $dsecond;
} else {
break;
}
}
// Create time string var
$timestring = '';
if($cdays > 0) {
if($cdays == 1) {
$timestring .= $cdays . ' ' . $day . ', ';
} else {
$timestring .= $cdays . ' ' . $days . ', ';
}
}
if($chours > 0) {
if($cseconds == 0 && $cminutes == 0) {
$timestring = rtrim($timestring, ' ,');
if($chours == 1) {
$timestring .= ' ' . $and . ' ' . $chours . ' ' . $hour . ', ';
} else {
$timestring .= ' ' . $and . ' ' . $chours . ' ' . $hours . ', ';
}
} else {
if($chours == 1) {
$timestring .= $chours . ' ' . $hour . ', ';
} else {
$timestring .= $chours . ' ' . $hours . ', ';
}
}
}
if($cminutes > 0) {
if($cseconds != 0) {
if($cminutes == 1) {
$timestring .= $cminutes . ' ' . $minute . ', ';
} else {
$timestring .= $cminutes . ' ' . $minutes . ', ';
}
} else {
$timestring = rtrim($timestring, ' ,');
if($cminutes == 1) {
$timestring .= ' ' . $and . ' ' . $cminutes . ' ' . $minute;
} else {
$timestring .= ' ' . $and . ' ' . $cminutes . ' ' . $minutes;
}
}
}
if($cseconds > 0) {
$timestring = rtrim($timestring, ' ,');
if($cseconds == 1) {
$timestring .= ' ' . $and . ' ' . $cseconds . ' ' . $second . ', ';
} else {
$timestring .= ' ' . $and . ' ' . $cseconds . ' ' . $seconds . ', ';
}
}
$timestring = rtrim($timestring, ' ,');
echo $timestring;
?>
Reacties
0